Swift全面屏iPhoneX适配_IOS自定义View全屏图片适配刘海屏X及XS MAX
程序员文章站
2021-12-28 21:39:03
...
由于目前全面屏的流行,这导致了我们开发者有一个问题,就是之前做的界面如果是全屏的背景图片的话,显示图片会被拉伸,看起来很不友好,十分影响用户体验。Android的话解决方案很好解决,就是把图片放到最下面或者最上面,然后不够的地方用纯色背景填充就可以了。
当我在改IOS的代码的时候我发现问题了,原理我也是想用之前改Android的方式一样的,可以之前的布局是用 XIB 做的,要把图片保留原始尺寸,然后用纯色填充的话,很不好调整,后来没办法,只能删掉 XIB ,用代码从新写一遍。今天就更大家分享一下我的自定义 View,可以填充全面屏的背景图片。
全面屏图片View
// // LoginFullImageView.swift // AutohigoDMS // // Created by qinyl on 2019/4/4. // Copyright © 2019年 路之遥网络科技有限公司. All rights reserved. // import UIKit class LoginFullImageView: UIView { var loginBG: UIImageView! override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = HexStringColor("#ff961a") //背景图片 let imageLogin = UIImage.init(named: "login_bg") var imageHeight = kScreenH if UIDevice.current.isIphoneX() { imageHeight = imageLogin!.size.height } loginBG = UIImageView.init(image: imageLogin) loginBG.contentMode = UIViewContentMode.center self.addSubview(loginBG) loginBG.snp.makeConstraints { (make) in make.bottom.equalToSuperview() make.width.equalTo(kScreenW) make.height.equalTo(imageHeight) } } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } }
调用方法
//MARK: - base configure func baseConfigure() -> Void{ //背景图片 var loginBG = LoginFullImageView.init(frame: CGRect.init(x: 0, y: 0, width: kScreenW, height: kScreenH)) self.view.addSubview(loginBG) }
以上就是我是采用全屏图片适配全面屏的方案,希望对大家有用
若资源对你有帮助,浏览后有很大收获,不妨小额打赏我一下,你的鼓励是维持我不断写博客最大动力。
想获取DD博客最新代码,你可以扫描下方的二维码,关注DD博客微信公众号(ddblogs)。
或者你也可以关注我的新浪微博,了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)。
如对资源有任何疑问或觉得仍然有很大的改善空间,可以对该博文进行评论,希望不吝赐教。
为保证及时回复,可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)。
感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。