解决插件失效的办法 defaults read /Applications Xcode.app/Contents/Info DVTPlugInCompatibilityUUID /Users/(mymac)/Library/Application Support/Developer/Shared/Xcode/Plug-ins iMac开机静音 sudo nvram SystemAudioVolume= 开机恢复声音 sudo nvram -d SystemAudioVolume iOS开发 判断各个设备型号
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/51026185
在我学习android开发的时候,觉得设备适配是件很头疼的事情,android的设备太多了,那时就很羡慕iOS开发的人不用操心适配的问题,而当我开始学习iOS开发后,iOS的屏幕也开始多种多样了起来...于是也得做适配了,sad...
iPhone手机屏幕尺寸一般指:物理像素,ps像素。 iPhone的app现在一般适配2倍图和3倍图。 iphont4s 是2倍图,但是你画一个粗为0.5的线,iphont4s显示不出来,iphont5s却可以看到一个像素(从截图上看到的)的线来。 识别手机机型使用的是几倍图,一般通过这个值来识别:[UIScreen mainScreen].scale。若为1就1倍图(iphone 4/iphone 4s是个例外),若为2就是2倍图,若是3就是3倍图。但是现在iphone 4/iphone 4s都是按照2倍图处理的,并且他们的屏幕截图也是640*960,说明它是2倍图。但是若你在iphone 4/iphone 4s手机上画条0.5像素的线是显示不出来的,但是在iphone 6及更高版本画一条1/([UIScreen mainScreen].scale)(就是0.5或1/3)的线是显示出来的,说明iphone 4/iphone 4s物理分辨率是1像素。 准确的倍图计算公式是:round(屏幕截图宽度/[[UIScreen mainScreen] bounds].size.width)。屏幕截图(上传苹果商店的屏幕快照或者用手机截屏得到的图片)的宽度(或高度)除以物理宽度(或高度,宽度是[[UIScreen mainScreen] bounds].size.width,高度是[[UIScreen mainScreen] bounds].size.height)的四舍五入的整数。iPhone XR的828/375=2.2.08,四舍五入值是2,它的[UIScreen mainScreen].scale也为2(FULL_WIDTH:375.000000, FULL_HEIGHT:812.000000, [UIScreen mainScreen].scale:2.000000),所以它是用2倍图。 下面是开发中用到的iphone,ipod,ipad对应的实际像素点和图片倍率: iphont4,iphone4s实际像素点: 3.5英寸屏(320/480) iphone5,iphone 5s,iphone 5se实际像素点: 4英寸屏 (320/568) iphont6,iphone7,iphone8实际像素点: 4.7英寸屏(375/667) iphont6 plus,iphone7 plus,iphone8 plus实际像素点: 5.5英寸屏 (414/736) iphontX若不设置启动图片相当于iPhone8的放大模式(375/667) ,若设置了启动图片才是他的实际像素 实际像素点: 5.8英寸屏(375/812) iPhone 12 mini实际像素点: 5.8英寸屏(375/812) ipod4实际像素点: 4英寸屏(320/568) iphontX若不设置启动图片相当于iPhone8的放大模式(375/667) ,若设置了启动图片才是他的实际像素,实际像素点: 5.4英寸屏(iPhone 12 mini)(375/812) 5.8英寸屏(iPhone X,iPhone XS,iPhone 11Pro)(375/812) 6.1英寸屏(iPhone XR,iPhone11) (414/896) 6.1英寸屏(iPhone12) (390/844) 6.5英寸屏(iPhone XS Max, iPhone 11 Pro Max, iPhone 12 Pro)(414/896) 6.7英寸屏(iPhone 12 Pro Max)(428/926) ipod4实际像素点(强制横屏模式): 4英寸屏(320/568) 只支持iPhone不支持iPad的app在iPad上运行都是2倍图,竖屏模式实际像素点:(375/667) iPad (8th generation) FULL_WIDTH:375.000000, FULL_HEIGHT:667.000000, [UIScreen mainScreen].scale:2.000000, 倍率:2.000000 iPad Air(4th generation) FULL_WIDTH:375.000000, FULL_HEIGHT:667.000000, [UIScreen mainScreen].scale:2.000000, 倍率:2.000000 iPad Pro (9.7-inch) FULL_WIDTH:375.000000, FULL_HEIGHT:667.000000, [UIScreen mainScreen].scale:2.000000, 倍率:2.000000 iPad Pro (11-inch) FULL_WIDTH:375.000000, FULL_HEIGHT:667.000000, [UIS
常用的宏 打印日志 //DEBUG 模式下打印日志,当前行 #ifdef DEBUG #define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define DLog(...) #endif //重写NSLog,Debug模式下打印日志和当前行数 #if DEBUG #define NSLog(FORMAT, ...) fp
- (void)ViewAnimation:(UIView*)view willHidden:(BOOL)hidden { [UIView animateWithDuration:0.3 animations:^{ if (hidden) { view.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.wi
现在的iOS开发中,因为iPhone的尺寸越来越多,有时候自动布局也很难适配出很精美的UI界面,难免有时候想根据机型来适配界面,所以在这里教大家一种很简单的来判断机型的方法。就是根据屏幕尺寸来判断。
上表中的宽高(width/height)为手机的物理尺寸,包括显示屏和边框。
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说ios学习7_iPhone屏幕尺寸、分辨率及适配,希望能够帮助大家进步!!!
在使用UICollectionView开发无缝隙或者间隙为1px的页面的时候应该会遇到这样的问题(iPhone 5s 没有问题),明明是把屏幕四等分了,但为什么会有下图的空白间隙呢? 等分有缝隙 再检
关于动画在iOS开发中的应用,曾经整理过一系列的博客进行总结。包括简单的UIView层的动画,CALayer层的动画,Autolayout自动布局动画以及CoreAnimation核心动画框架等。本篇博客主要深入讨论视图控制器、导航控制器来进行界面跳转时的专场动画相关内容。之前的动画相关博客列举如下:
适配iPhone X和Xcode 9的过程中,除了与导航栏相关的问题,还有一个问题经常出现,就是UITableView相关的问题。下面两个办法可以解决多数错位的问题。
更多的关于NSUserDefaults的介绍请看:NSUserDefaults 简介
宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。 编译时编译器会在语义分析认定是宏后,将形参替换为实参,这个过程称为宏的展开。
Hello, 大家好,今天是和大家分享如何用 Swift 开发网易云音乐首页的第四篇文章,在前几篇文章中我分别和大家分享了如何使用 MVVM 模式来构建应用,以下是文章的直通车:
今天碰到这样一个场景,我需要一个仅仅用来展示网页的页面,那么在 iOS 9 中,我可以使用 SFSafariViewController,而在 iOS 8 及之前版本中,我会使用一个 WebView 来占据整个视图空间,来做这件事。
在项目中免不了会遇到,实名认证上传身份证、绑定银行卡等功能。在实际操作中呢,会涉及到上传图片,在页面布局时,可能图片不是一张,考虑到布局的美观等因素,显示图片的位置变得很小,如果想查看上传的图片是否清晰,内容是否完整,可能就需要放大才能实现,下面就和大家分享一下我封装的一类,完美的实现了图片的缩放功能。
此时在Swift中的宏定义那就只能找个文件直接let了,比如Const.swift之类的。
2.设置html图片的高度 计算出来的 height 正好是排版后的高度大小,是 CGFloat 类型,在是在我们设置UIlabel/Cell 高度时,可能存在四舍五入等,最后存在的一点点误差使得 UILabel 显示不全,可能出现缺少一行,上下空白太多等情况;
获取当前容器或父视图的尺寸可以使用 onGloballyPositioned,不过拿到的是像素点。
在iOS5.0以下,在程序中是不能直接设置系统屏幕亮度的,到了ios5.0以后将这个api开放给了开发者,这样我们就可以非常方更的更改系统屏幕的亮度, 使用方法也很简单 ,如下: 获取系统屏幕当前的亮度值 float value = [UIScreen mainScreen].brightness; 设置系统屏幕的亮度值 [[UIScreen mainScreen] setBrightness:value];
在移动端或者前端开发中,UI图通常是带标注的,指定某个控件的长宽等属性,一般UI给的是68px,72px这样的样式,但是我们在开发过程中通常又并不是完全按照上面的标注去设置值,有时候需要将这个标注除以2或者除以3在进行赋值给frame,这其中的原因是因为标注一般都是按px格式给的,但是iOS底层绘制的时候是按照pt为单位进行绘制,这两个的区别在于:
什么叫高斯模糊效果,通俗地说,就是毛玻璃效果,从iOS 7以来,就频繁地被设计使用,如果用得好,效果会显得非常的好。我们来看一个例子:
实现效果: textview 能够跟随键盘的移动而移动 效果图如下: 下边贴上主要的代码: 1.创建textview @interface ViewController ()<UITextViewDe
首先,需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES;
增加了新的超大字体样式extraLargeTitle与extraLargeTitle2。
这些 api 已被废弃,所以需要判断 iOS 版本 写两套代码: Replace usage of UIGraphicsBeginImageContextWithOptions with UIGraphicsImageRenderer. Replace usage of UIGraphicsGetImageFromCurrentImageContext with UIGraphicsImageRendererContext.currentImage.
有时候,我们会需要在整个项目中,使某一个ViewController支持屏幕旋转,而其他的ViewController并不能自动旋转。这是一个很常见的需求,下面就屏幕旋转相关问题做个小结。
640 × 960 iPhone4s Default@2x
1、状态栏:通常是20px高,在打电话或显式消息时,放大到40px。因此,在纵向模式下,应用程序的可用空间是320×460,横向模式下是480×300;
最近需要重构项目,写个关于重构方面 1.宏定义(基本设置) //读取App的版本号 #define kAPPVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] //弱引用 #define kWeakSelf(type) __weak typeof(type) weak##type = type; //判断设备版iOS9及以上 #define ADVANCE_IOS9 [[[UI
swift版本的带进度的无限轮播头部bar。 HRCycleView基于UICollectionView来实现。 功能包含: 支持单张图片 支持带进度条样式 支持持续时间自定义 支持本地图片显示,网路
如下图所示:自定义PersonalCenterView,如何在controller拿到按钮(小箭头)的点击方法?
URLSession 建议通过连接迁移来优化网络切换场景下的 TCP 连接重建,降低网络的延迟。 import UIKit class ViewController: UIViewController { lazy var session: URLSession = { let configuration = URLSessionConfiguration.default // MultipathServiceType是一个枚举类型,App可以采用不同的策略来利用这
参考链接:https://blog.csdn.net/smileKH/article/details/110115810
| 导语 随着苹果发布会的结束,Xcode的GM版也上线了,也意味着iPhoneX适配之旅的开始。 一、设计关注篇 注意设计的基本原则:(苹果呼吁的) 原贴:https://developer.apple.com/library/content/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/Displays/Displays.html#//apple_ref/doc/uid/TP40013599-CH108-SW1
先看下效果图,很简洁,没有任何样式。 效果图 接下来就是具体的实现。 1. 创建ViewController 命名为SHomeViewController。 2. 声明 UICollectionVie
1. UIWindow/使用纯代码加载根控制器 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow -iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 创建的第一个对象是:UIApplication 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow 。也就说,没有UIWindow,就看不见任何UI界面 1.1 手工创建一个
现在开发iOS无非就是用xib和纯代码开发,不论用什么方式开发都少不了屏幕适配。这只是个人开发中使用的方法也不一定是最好的方法,仅供交流和分享使用。
写Objective-C的时候常常会用到各种宏定义,但是Swift中貌似没有宏的这种定义,更多的是通过全局常量或者全局函数来实现这一效果.我们只需要建立一个文件(假设为Const.swift),把想用的定义在里面,无须导入头文件什么的,就可以在全局用啦.
最近在做SDK的截图,想触发类似系统的截屏功能,找了一圈,总结一下靠谱的几种方式。 我写了个UIView 的category,将这几种方式封装和简化了一下。
There are three fundamental Kits in iOS development framework named "OpenGL ES", "Metal", "SceneKit" and an extended kit named "RealityKit" for 3d development. The "ARkit" is functional for both 3d and camera display that render a 3d scene in the camera e
1.UIWindow简介 UIWindow是一种特殊的UIView,通常在一个app中至少会有一个UIWindow。 iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的View,最后将控制器的View添加到UIWindow上,于是控制器的View就显示在屏幕上了。 一个iOS程序之所以能显示在屏幕上,完全是因为它有UIWindow,也就是说,没有UIWindow就看不到任何UI界面。 状态栏和键盘都是特殊的UIWindow。 那么UIWindow是如何将View显示到屏幕上的呢
如果出现这个问题,那么首先恭喜你,不是渠道的SDK太旧了,不兼容版本,而是CP游戏工程太老了
最近有一个需求,类似今日头条顶部的菜单栏。唯一区别是需要带可移动的下划线。网上查找资料,发现解决方案大部分是用UIScrollView实现。下方VC控制用UICollectionView。这样可以解决问题,但是不完美,当标签很多的时候,这时候的UIScrollView上会有大量写死的Button,没有达到复用的目的。所以自己封装了一个空间。菜单栏使用UICollectionView,VC控制使用PageViewController。
在开发过程中,我们经常会在很多地方调用相同的内容。比如说我们设置控件位置时获取屏幕的宽高来适配,又比如说我们自己定义的一个转换颜色的消防法,还有各种头文件。这些常常使用到的内容,如果要在每一次要使用的时候都重复调用一次头文件或者声明一个方法,无疑是很低效的,而且也会很烦= =,而PCH文件就是解决这个问题的。
App设计时往往会用到一些模糊效果或者毛玻璃效果,iOS目前已提供一些模糊API可以让我们方便是使用。
1.使用layer去实现, 见http://blog.csdn.net/johnzhjfly/article/details/39993345
UIView 增加了一个hoverStyle属性,可以设置鼠标移动到 UIView 之上的效果。
领取专属 10元无门槛券
手把手带您无忧上云