iOS 新手引导页图片适配及其尺寸大全

时间:2022-08-29 09:38:32

早期新手引导页只需要几张图片就可以解决了,随着屏幕尺寸的的越来越多,新手引导页的尺寸适配起来越来越麻烦,否则就会出现尺寸不匹配,图片被拉伸的情况

目前应该是有2种方法来解决这个问题

方法1:

根据每款手机的分辨率来选择需要的图片尺寸

if(分辨率1){

图片1

}else if(分辨率2){

图片2

}else if(分辨率3){

图片3

} .....

这种方式可以确实可以解决问题,就是太麻烦,太多的ifelse逻辑代码

方法2:

使用Assets.xcassets来管理引导页图片,将指定分辨率的图片放入指定的位置,使用时只需要拿到图片名,图片会根据分辨率自动选取匹配的图片 有点像@2x @3x图片自动管理机制

具体实现有以下几个步骤:

1.创建一个LaunchImage类型的图片集合

2.将创建的LaunchImage.launchimage从命名为first_open_01.imageset

3.根据分辨率将指定图片拖入到指定位置

iOS 新手引导页图片适配及其尺寸大全

4.由于有引导页有多张图片,可以使用同样方法创建多个first_open_02.imageset,first_open_03.imageset,first_open_04.imageset等

iOS 新手引导页图片适配及其尺寸大全

对应尺寸这里绘制了一张表(markdown格式):

尺寸 分辨率 scale 型号 对应机型
3.5'' 640x960 @2x 2x iPhone4及其以下
4.0'' 640×1136 @2x Retina 4 iPhone5/iPhone5s/iPhoneSE
4.7'' 750×1334 @2x Retina 4.7'' iPhone6/iPhone6s/iPhone7/iPhone7s/iPhone8/iPhone8s
5.5'' 1242×2208 @3x Retina 5.5'' iPhone6P/iPhone7P/iPhone8P
5.8'' 1125×2436 @3x iPhone X/iPhone XS iPhoneX/iPhoneXs
6.1'' 828x1792 @2x iPhoneXR iPhoneXR
6.5'' 1242x2688 @3x iPhoneX Max iPhoneX Max

swift版本引导页代码如下:

//
// HXQNewFeaturesVC.swift
// t1
//
// Created by Tiny on 2018/10/25.
// Copyright © 2018年 hxq. All rights reserved.
// 版本新特性 import UIKit class HXQNewFeaturesVC: HXQBaseVC { var scrollView = UIScrollView()
lazy var skipBtn:UIButton = {
let skipBtn = UIButton()
skipBtn.backgroundColor = UIColor(white:0, alpha: 0.3)
skipBtn.setTitle("跳过", for: .normal)
skipBtn.setTitleColor(.white, for: .normal)
skipBtn.titleLabel?.font = UIFont.systemFont(ofSize: 14)
skipBtn.layer.cornerRadius = 15
skipBtn.layer.masksToBounds = true
skipBtn.layer.borderColor = UIColor.white.cgColor
skipBtn.layer.borderWidth = 1.0
skipBtn.addTarget(self, action: #selector(jumpToRoot), for: .touchUpInside) return skipBtn
}() override func viewDidLoad() {
super.viewDidLoad() setupUI()
} func setupUI(){ scrollView.backgroundColor = .white
scrollView.showsHorizontalScrollIndicator = false
scrollView.isPagingEnabled = true
scrollView.bounces = false
view.addSubview(scrollView)
scrollView.snp.makeConstraints { (make) in
make.edges.equalToSuperview()
} //5张图片
var last:UIImageView? = nil
for i in 0..<4 {
let imgView = UIImageView()
imgView.image = UIImage(named: "first_open_0\(i+1)")
scrollView.addSubview(imgView)
imgView.snp.makeConstraints { (make) in
if last == nil{
make.left.equalToSuperview()
}else{
make.left.equalTo(last!.snp.right)
}
make.width.equalToSuperview()
make.height.equalToSuperview()
make.top.equalToSuperview()
}
last = imgView
}
//更新scrollView contentSize
scrollView.snp.remakeConstraints { (make) in
make.top.bottom.left.equalToSuperview()
make.right.equalTo(last!.snp.right)
} //设置跳过button
view.addSubview(skipBtn)
skipBtn.snp.makeConstraints { (make) in
make.top.equalToSuperview().offset(30)
make.right.equalToSuperview().offset(-30)
make.size.equalTo(CGSize(width: 60, height: 30))
}
} @objc func jumpToRoot(){
//拿到当前的delegate
guard let window = UIApplication.shared.delegate?.window else{
fatalError("获取window失败")
}
window?.rootViewController = ViewController()
}
}

转载请标注来源:https://www.cnblogs.com/qqcc1388/p/9895346.html

iOS 新手引导页图片适配及其尺寸大全的更多相关文章

  1. ios开发之--新手引导页图片适配方案

    1,图片适配,最早以前是自己命名规范,例如@1x,@2x,@3x等,3套图基本上就够用了 2,在iPhone X之后,需要适配的图就多了,因为分辨率增多了,屏幕尺寸也增多了 3,尺寸 :640*960 ...

  2. 关于图片适配不同尺寸的image View(实战)

    分享人:广州华软 佐罗 一. 前言 在前端开发过程中,设计稿中往往只提供一张图片,但是app内需要用到的尺寸各种各样. 同时图片不仅是信息的直接表达,也会为网站起到美观点缀的作用,图片的变形.过分裁切 ...

  3. iOS新手引导页的实现,源码。

    /*.在Main.storyboard中找到,ScrollView和PageControl并添加到ViewController中. .在ScrollView中添加ImageView,新手引导页有几个图 ...

  4. 【iOS 开发】iOS 开发 简介 &lpar;IOS项目文件 &vert; MVC 模式 &vert; 事件响应机制 &vert; Storyboard 控制界面 &vert; 代码控制界面 &vert; Retina 屏幕图片适配&rpar;

    一. iOS 项目简介 1. iOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类 ...

  5. iOS 实现启动屏动画(Swift实现,包含图片适配)

    代码地址如下:http://www.demodashi.com/demo/12090.html 准备工作 首先我们需要确定作为宣传的图片的宽高比,这个一般是与 UI 确定的.一般启动屏展示会有上下两部 ...

  6. iOS 4s-6Plus屏幕自动适配及颜色转换为十六进制

    iOS各种屏幕自动适配及颜色转换为十六进制 ★★★XLJMatchScreen自动适配屏幕★★★ 支持pod导入 pod 'XLJScreenMatching', '~> 1.0.3' 如果发现 ...

  7. iOS WKWebview 网页开发适配指南

    iOS WKWebview 网页开发适配指南 微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配.如有问题,可参考文末联系方式,向我们 ...

  8. iOS杂谈-图片拉伸的实现

    如上图是一个按钮的背景图,在Android上,很多图片资源都是类似这样子的,但是由于按钮的高度及宽度与图片的世纪尺寸不同,所以需要采用9patch来实现拉伸处理, 可参考:http://www.cnb ...

  9. iOS系统下 的手机屏幕尺寸 分辨率 及系统版本 总结

    今天  我对iOS系统下 的手机屏幕尺寸 分辨率 及系统版本做了一次系统总结 供大家参考. 首先 是系统:    随着iOS 系统不断升级,现在已经到iOS7.0了, 并且TA有了很多新变化,最震撼的 ...

随机推荐

  1. Java -- 访问控制

    原文:http://www.cnblogs.com/diyingyun/archive/2011/12/21/2295947.html 可见/访问性 在同一类中 同一包中 不同包中  同一包子类中  ...

  2. Windows下用Eclipse搭建C&sol;C&plus;&plus;开发环境

    本文假定你已经熟悉Java,Eclipse的安装,并能顺利启动和运行Eclipse.此外因为各软件版本在不断更新,有些地方可能不准确,以最新的.原文资料为准. 距上一次写和调C++程序,已经5.6年了 ...

  3. TeamViewer 服务队列网页怎么打开?有什么用?

    熟悉一款软件,除了要熟悉它的界面,还应该熟悉它的网站.可能会有很多人说,网站我当然知道了.但是TeamViewer的服务队列页面你真的熟悉吗?所以,今天小编就带大家深入的了解一下TeamViewer服 ...

  4. React Native实现一个自定义模块

    概述 在 前期介绍React Native 项目结构的时候,我们讲解过React的项目组成,其中说过 node_modules 文件夹,这是一个存放 node 模块的地方.我们知道React是用npm ...

  5. cocos creator主程入门教程(九)—— 瓦片地图

    五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 这一篇介绍瓦片地图,在开发模拟经营类游戏.SLG类游戏.RPG游戏,都会使用到瓦片地图.瓦片地图地面是通 ...

  6. 高德地图 Service 创建服务 USERKEY&lowbar;PLAT&lowbar;NOMATCH

    在使用高的地图 创建服务的时候 { "errmsg": "USERKEY_PLAT_NOMATCH", "errcode": 10009, ...

  7. 【神经网络】Dependency Parsing的两种解决方案

    一.Transition-based的依存解析方法 解析过程:首先设计一系列action, 其就是有方向带类型的边,接着从左向右依次解析句子中的每一个词,解析词的同时通过选择某一个action开始增量 ...

  8. 如何对接oracle 建立pdb

    Oracle数据库的结构是一个数据库实例下有许多用户,每一个用户有自己的表空间,即每一个用户相当于MySQL中的一个数据库.不久前下了oracle 12c的数据库,安装之后建user时才知道oracl ...

  9. 为 昂达 v891 安装上了 remix OS 了

    起因: 默认的ROM自带一堆垃圾app,最主要的是没有root , 所以卸载不了. 然后试了 Root大师 , 刷机精灵 之类的软件. 我 CTMD , 简直比出厂ROM 还流氓, 不断的强制安装各种 ...

  10. Dubbo阅读笔记——高级功能

    事件处理线程说明 如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识,则直接在IO线程上处理更快,因为减少了线程池调度. 但如果事件处理逻辑较慢,或者需要发起新的IO请求 ...