1 系统自带方式 1.1 添加图片 1,准备图片资源,放入工程中,即可,默认时间为1s iOS设备现在有三种不同的分辨率:iPhone 320x480、iPhone 4 640x960...(不推荐) 320x480或者320x460 Default@2x.png iPhone4启动图片640x960或者640x920 为了在iPad上使用上述的启动画面,你还需要在info.plist中加入...1.3 启动时显示状态栏 • 在-info.plist文件中加入选项 "Status bar is initiallyhidden",值为 YES 在 AppDelegate.m...中以模态窗口的方式弹出此VC。...但是这个窗口默认的背景色是磨砂不透明的,因此还需要把它的背景色设为透明。这样看起来就像是全屏遮罩一样,但是由于系统不认为新的View是全屏的,所以上一个View也不会被unload。
子 View 的顺序和子 View 返回的数组中的位置有关(storyboard 中左侧的树形结构图中的先后顺序)。...数据联动 在某一列滚动的时候,重新设置联动列的显示数据,然后进行刷新操作。...contentOffset:UIScrollView 当前显示区域的顶点相对于内容左上角的偏移量(滚动到了什么位置)。...UITableViewDiffableDataSource 在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView...介绍 UICollectionViewCompositionalLayout 是在已有的 Item 和 Section 的基础上,增加了一个 Group 的概念。
自去年9月12日苹果发布会发布iPhone X之后,新颖的设计虽然引来不少骂声,但也给iOS设计和开发者带来了新的挑战,本文总结了iOS QQ空间对iPhone X适配过程遇到的问题和解决手段。...iPhone X尺寸说明 根据苹果iPhone X适配规范,iPhone X屏幕尺寸为375 x 812pt,宽度和iPhone 6/6s/7/8一样,但高度比它们高了145pt,如下图所示。...应用全屏化 如果应用不做修改直接运行在iPhone X上,程序只能获取到和iPhone 6一样的展示界面,通过UIScreen获取到得宽高为375 *667。...,当我们在全屏界面隐藏了状态栏之后,statusBarFrame获取到的size为0,可能会出现控件布局错乱,因此最稳妥的方法还是判断是否iPhone X返回一个常数,如下所示。...从刚才全屏化的界面中可以看到,界面底部多了一条黑条,我们将其称为Home Indicator,这是iPhone X新添加的虚拟按键,以替代原来的Home键,它支持的操作有上滑退至多任务界面,左滑和右滑切换当前程序
在腾讯优量汇开发者平台新建广告位时您只能看到您有相应权限的广告位类型。目前有专门的优量汇代理商负责运营和商务。...开屏全屏广告需使得显示区域其高度与设备高度一致,即为开屏全屏广告。开发者可通过以下接口配合使用提供媒体logo,用以随开屏广告展示。...idfa的适配请看本文的第三章节 GPS信息获取开关 在已获得GPS权限的前提下,媒体可以选择是否在广告中获取用户的GPS信息,以便获取定向广告。...的实现文件中初始化并加载广告数据,开屏广告目前支持全屏开屏和半屏开屏广告两种形式,其中半屏开屏广告支持开发者自定义设置开屏底部的界面,用以展示应用Logo等。...设备不同设置不同背景图 需要iPhone 8 Plus@2x.png、iPhoneX@2x.png、iPhone4@1x_2.png,以及启动页的SplashLogo.png UIImage *
的话,在代理中再改变 self.HeadImgView的 frame 就会出现下拉时上面出现空白的情况。...findHairlineImageViewUnder:subview]; if(imageView) { returnimageView; }}returnnil; } 5.点击旋转全屏显示...这时view controller中对status bar的设置优先级高于application的设置,用下面的方式隐藏status bar: 1、在view controller中调用setNeedsStatusBarAppearanceUpdate...- (BOOL)prefersStatusBarHidden { return YES; } 就可以达到动态隐藏和显示状态栏的目的。...里设置: 进入iPhone的 设置 > 通用 > 辅助功能 > 语音,开启“朗读所选项”,并在“嗓音”中选择“中文” 在真机测试的时候,碰巧那台手机的加减音量按键失效了
obj1和obj2分别是指数组中的对象。...UIScrollView+UITouch.h这个分类类,在触发touch操作时,代码依然会执行到这三个方法中来,因为这个catalog相当于替源类UIScrollView实现了继承的职责,实现了父类的touch...但是在IOS6的一台Iphone4s和IOS7的ipad air2上面在最后安装的时候居然安装失败,提示 There was an internal API error....我发现console打印出的日志显示在安装的app的名字是乱码,通过查看build settings发现过product name改的是中文(解决方法)。...,不然即使App上传成功了,在构建版本一项中找不到。
(英吋) 1 inch = 2.54cm = 25.4mm 3.iPhone手机宽高 上表中的宽高(width/height)为手机的物理尺寸,包括显示屏和边框。...在同样的逻辑坐标系下(320×480): 1 point = scale*pixel(在iPhone4~6中,缩放因子scale=2;在iPhone6+中,缩放因子scale=3)。...iPhone3GS时代,我们为一个应用提供图标(或按钮提供贴图),只需要icon.png。针对现在的iPhone4~6 Retina显示屏,需要制作额外的@2x高分辨率版本。...例如在iPhone3GS中,scale=1,用的图标是50x50pixel(logicalimage.size=50x50point);在iPhone4~6中,scale=2,则需要100×100pixel...从分辨率的角度来看,iPhone6沿用二倍图(@2x),但需为iPhone6+提供更高的三倍图(@3x);从屏幕尺寸角度来看,需要重新对UI元素尺寸和布局进行适配,以期视觉协调。
更多的关于NSUserDefaults的介绍请看:NSUserDefaults 简介 你可以选择在AppDelegate.m中的didFinishLaunchingWithOptions 方法或者“初始界面...} 二、初始化 UIScrollView 和 UIPageControl 为启动滑动图做准备 UIScrollView : 带有滑动效果,在上面加入UIImageView再设置代理后,可以实现翻页显示图片的效果...imageView 中 UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",i+1]];..._scrollView 显示在 同一个页面中 UIPageControl *pageConteol = [[UIPageControl alloc] initWithFrame:CGRectMake...,下面给出的代码是一个简单的动画效果: 代码如下: -(void)scrollViewDisappear{ //拿到 view 中的 UIScrollView 和 UIPageControl
在ARKit的虚拟世界中,使用了和陀螺仪一致的右手系,如下图所示。 ?...在老罗的发布会演示中我们看到无限屏功能主要包括沿着X轴左右移动视口和沿着Y轴上下移动视口两部分,因此我们需要通过ARFrame去获取X轴和Y轴的相对位移。...在ARSession启动后,会不断通过回调通知ARFrame的更新,在回调方法中我们可以拿到摄像机的transform矩阵,该矩阵的大小为4x4,经过查阅资料了解到,矩阵最后一行的前三个元素分别是x、y...这部分代码可以在文末的源码中查看,这里不再赘述, ? ?...知识储备和环境 越狱开发的基础知识,SSH、SCP、动态库加载实现Hook等 支持ARKit的iPhone或iPad 越狱的iPhone或iPad Electra Jailbreak Theos开发环境
(英吋) 1 inch = 2.54cm = 25.4mm 3.iPhone手机宽高 上表中的宽高(width/height)为手机的物理尺寸,包括显示屏和边框。...在同样的逻辑坐标系下(320x480): 1 point = scale*pixel(在iPhone4~6中,缩放因子scale=2;在iPhone6+中,缩放因子scale=3)。...iPhone3GS时代,我们为一个应用提供图标(或按钮提供贴图),只需要icon.png。针对现在的iPhone4~6 Retina显示屏,需要制作额外的@2x高分辨率版本。...例如在iPhone3GS中,scale=1,用的图标是50x50pixel(logicalimage.size=50x50point);在iPhone4~6中,scale=2,则需要100×100pixel...从分辨率的角度来看,iPhone6沿用二倍图(@2x),但需为iPhone6+提供更高的三倍图(@3x);从屏幕尺寸角度来看,需要重新对UI元素尺寸和布局进行适配,以期视觉协调。
) 然后创建一个文件,创建一个MyRefreshView类并且init需要传进来frame和UIScrollView,UIScrollView用来监听外界的拉取动作。...) 然后设置好相关属性,这里圆的半径设置为view高度 * 0.8 的一半,这里lineDashPattern是创建路径的描边版本时应用的虚线图案(NSNumbers数组)。...) 然后在refreshView里面的scrollViewDidScroll 和 scrollViewWillEndDragging方法进行对应的处理。...var progress: CGFloat = 0.0 在scrollViewDidScroll 里面算出向上滚动的高度,然后处理本身view的大小和1比较取最小值,然后根据得到的progress设置...这里改变了scrollView的contentInset来显示这个view,再为ovalShapeLayer添加上strokeStart和strokeEnd的动画,然后为airplaneLayer添加上绕圆的位置的变化以及图片角度的变化
在同样的逻辑坐标系下(320x480): 1 point = scale*pixel(在iPhone4~6中,缩放因子scale=2;在iPhone6+中,缩放因子scale=3)。 ...iPhone3GS时代,我们为一个应用提供图标(或按钮提供贴图),只需要icon.png。针对现在的iPhone4~6 Retina显示屏,需要制作额外的@2x高分辨率版本。 ...例如在iPhone3GS中,scale=1,用的图标是50x50pixel(logicalimage.size=50x50point);在iPhone4~6中,scale=2,则需要100×100pixel...从分辨率的角度来看,iPhone6沿用二倍图(@2x),但需为iPhone6+提供更高的三倍图(@3x);从屏幕尺寸角度来看,需要重新对UI元素尺寸和布局进行适配,以期视觉协调。...(3)按字体适配 另外,iPhone的【设置】【通用】【辅助功能】中可以设置调节【更大字体】,APP也可以按字号适配: 例如适配表视图(UITableView:UIScrollView),无法左右滑动
上表中的宽高(width/height)为手机的物理尺寸,包括显示屏和边框。...在同样的逻辑坐标系下(320×480): 1 point = scale*pixel(在iPhone4~6中,缩放因子scale=2;在iPhone6+中,缩放因子scale=3)。...iPhone3GS时代,我们为一个应用提供图标(或按钮提供贴图),只需要icon.png。针对现在的iPhone4~6 Retina显示屏,需要制作额外的@2x高分辨率版本。...例如在iPhone3GS中,scale=1,用的图标是50x50pixel(logicalimage.size=50x50point);在iPhone4~6中,scale=2,则需要100×100pixel...从分辨率的角度来看,iPhone6沿用二倍图(@2x),但需为iPhone6+提供更高的三倍图(@3x);从屏幕尺寸角度来看,需要重新对UI元素尺寸和布局进行适配,以期视觉协调。
UIScrollView 的无限滚动主要应用在图片轮播器、欢迎界面等场景。首先需要说明的是,文本所讲的是一种"笨办法",但是好理解且容易实现,在图片不多的时候用它也无妨。...它的原理是在要显示的图片前后各加一张图片即在第一张图片之前放最后一张图片,在最后一张图片之后放第一张图片,然后在滚动到边缘的时候,巧妙的过渡一下就可以"瞒天过海","以假乱真"的造成无限滚动的假象。...2、代码实现,主要分为:添加UIScrollView,添加显示图片,添加UIPageControl,然后监听UIScrollView的滚动,根据滚动的位置来设置UIPageControl,最重要的是对于滚动到两个边缘时要特殊处理一下...(0, 64, SCREEN_WIDTH, IMG_HEIGHT)]; //创建UIImageView并添加到UIScrollView中 for (int i = 0; i的代理方法,在该方法中改变UIPageControl并且处理边缘滚动 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
经过可以对比发现,③和④的图片是一致的,并且明显与①所选中的区域有所偏移。以同样的方式尝试iPhone X和6s的模拟器,发现都有偏移现象,且iPhone X的偏移更为严重。...以这个区域为突破口,对比此处区域的高度值和裁剪的偏移值,得到大致是1:2的比例,符合2x屏幕。 用iPhone X模拟器同样复现了这个问题,并且不能选择的区域更大。...对于做过iPhone X适配的开发,对于44这个数值域是非常敏感的(顶部安全区域的高度),猜测是和statusBar有关。 再找到6s的模拟器对比裁剪偏移量,果不其然,大致是22pixel。...查看头像详情时,点击头像(为圆形)会全屏显示头像大图。...为了iPhone X全新的交互体验,iOS 11做了非常大的改动,之前的beta版本问题更多。 善用Xcode的调试工作,勤看具体API的头文件,遇到问题仔细分析。
提供了4种基本的表格视图单元格,在SDK 3.0 之后,每个单元格都有3个属性textLabel,detailTextLabel和imageView。 ...第一种比较常见,在网上到处都是,我这也是抄别人的。主要就是说自己定义一个view,弄成透明的,然后盖在TableView的上部和下部,这样就“隐藏”了。...解决的办法就是在bitmap context里先将其画一遍,导出成UIImage对象,然后再绘制到屏幕,详细做法可见《利用预渲染加速iOS设备的图像显示》。...(在C函数中)生成UIImage,然后传递给B函数去处理,这样内存会暴涨。...出现这种现象的原因就是主线程执行了耗时很长的函数或方法,在其执行完毕前,无法绘制屏幕和响应用户请求。其中最常见的就是网络请求了,它通常都需要花费数秒的时间,而你不应该让用户等待那么久。
iOS中UI的布局是很重要的,而在前期开发中就要选定好布局的方法,因为这对整个工程乃至于后期的版本维护都有很重要的影响。...如果父试图使用的是 Frame , 子试图使用 AutoLayout 不会有问题, 使用Frame 来布局UI是开始的做法,现在也有很多人仍然钟情与这种方法,这种方法很直观,使用起来也很简单,但是他的简单决定了他在屏幕适配和内容自适应上的局限性...(横竖屏时不设置的话无法使用,因为横屏的时候,之前设置的Frame属性 还是竖屏的Frame)`,当然可以使用Fram的方法达到屏幕适配和自动布局,但是中间的过程是复杂而且工作量巨大的,写起来也是痛苦的...就这样随便加一个约束就如此的繁琐,更何况一个view最起码有上边距,左边距和宽高,也就是所谓的x、y、width、height四个基本属性。...,20).topSpaceToView(self.view,80).widthIs(80).heightIs(80); [imageV setSd_cornerRadius:@40]; 方法名中带有
每个iPhone用户界面都是由显示在UIWindow(这其实也是个特殊的UIView)内的众多UIView及其专门化子类构建的。...显示数据的视图: UITextView UILabel UIImageView UIWebView MKMapViews UIScrollView 可选择的视图(以下两个视图类实例都是模态显示的): UIAlertView...)和栏标题(title)、用于显示标题的视图(titleView),以及用于从当前视图向后导航的Back按钮(backBarButtonItem)和隐藏后退按钮(hidesBackButton)。...•管理视图上显示的数据。 •设备方向变化,调整视图大小以适应屏幕。 •负责视图和模型之间的数据及请示的传递。 2....主要属性 • view: 控制器管理的根视图 • title: 控制器导航栏的标题 • wantsFullScreenLayout: 是否需要全屏显示 • interfaceOrientation: 界面方向
我们知道UITabelView在iOS开发中扮演者举足轻重的角色,因为它是iOS开发中使用频率非常高的控件之一:几乎每个app都离不开它,因此,UITabelView的性能将直接影响这个app的性能。...虽然样式比较复杂,但是滑动起来性能却很好:我在我的iphone 4s上进行了Core Animation测试,在滑动的时候帧率没有低于56,而且也没有觉得有半点卡顿,那么他是怎么做到的呢?...所以需要在判断之后,用hidden属性来控制相应控件的隐藏和显示,而不是用addSubView的方法。...持有两种UIImageView,用来显示默认状态和高亮状态的图片(将字符串绘制成图片)。 保存了四种特殊文字的颜色,用正则表达式识别以后,给其着色。...关于tableView的优化,作者做了很多处理,使得这种显示内容比较丰富的cell在4s真机上好不卡顿,非常值得学习。
, nonatomic) NSMutableArray *images; @end /* 何问起 hovertree.com */ 在程序中导入图片,在.m文件中的代码实现: - (void)viewDidLoad...self.scrollView.scrollEnabled = YES; //设置是否可以进行画面切换 self.scrollView.pagingEnabled = YES; //设置在拖拽的时候是否锁定其在水平或者垂直的方向...rect.size.height = self.scrollView.frame.size.height; pImageView.frame = rect; //设置图片内容的显示模式...CGRect rect = self.scrollView.frame; //设置视图的横坐标,一幅图为320*460,横坐标一次增加或减少320像素 rect.origin.x...,必须实现的 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { //获取当前视图的宽度
领取专属 10元无门槛券
手把手带您无忧上云