Swift全面屏iPhoneX适配_IOS自定义View全屏图片适配刘海屏X及XS MAX
2019-04-11 09:55:22  By: dwtedx

由于目前全面屏的流行,这导致了我们开发者有一个问题,就是之前做的界面如果是全屏的背景图片的话,显示图片会被拉伸,看起来很不友好,十分影响用户体验。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的留言板)

感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+