欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

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的留言板)

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