首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WWDC2016 Session笔记 - iOS 10 UICollectionView新特性

注意对比和iOS 9区别,iOS 9 是在cell上边缘马上进入屏幕时候才调用方法,而这里,cell整个生命周期都被提前了,提前到cell还在设备外面的时候。...cell就又会重新出现在屏幕中。这就是iOS 10 整个UICollectionView生命周期。 ? ? ? 上面说iOS 10里面的场景同样适用于多列情况。...最后,需要注意是cellForItemAtIndexPath生成某些cell,可能永远都不会被展示在屏幕,有这样一种情况,当cell将要展示在屏幕时候,用户突然滑动离开了这个界面。...上图是iOS 10 UICollectionView性能,我们可以很明显看到,经过iOS 10优化,整个曲线很明显平缓了一些,没有极端波峰掉帧现象。...以上就是去年iOS 9为我们增加API。 今年iOS 10新加入API是在iOS 9基础增加了翻页功能。

1.9K30

iOS开发之使用Storyboard预览UI在不同屏幕运行效果

言归正传,接下来就介绍一下如何使用Storyboard来预览UI在不同那个分辨率屏幕运行效果,这就很好避免了每次调整约束都要Run一下才能看到不同平面上运行效果,今天博客就来详述一下如何使用Storyboard...一、创建工程添加测试使用UIImageView     创建一个测试工程,在ViewController添加4个不同尺寸UIImageView, 并且添加上不同约束,最后添加上不同文艺小清新图片...,最终Storyboard控件和约束如下所示。...二、打开预览界面     1.点击Storyboard左上角按钮 -> 点击Preview -> 按着potion + shift键 点击相应Storyboard, 具体操作如下图所示: ?     ...三、添加预览设备     1.双击上面加号按钮回出现预览窗口,在预览窗口左下方有一个加号按钮,通过加号按钮你可以添加不同尺寸屏幕进行预览,从3.5到iPad应有尽有,添加是的截图如下所示。

2.2K80
您找到你想要的搜索结果了吗?
是的
没有找到

一个iOS11列表必现crash

一个只在iOS11才发生crash,crash日志在附件。经过排查后发现是在引导关注弹幕出现时候退出才会必现crash,之后进行了复现,拿到了完整crash堆栈。..._findCommonAncestorOfItem:andItem:],从方法名可以看到应该是因为某两个subview约束出现了问题,这两个item有一个commonAncestor导致了crash...,虽然不太明确为什么iOS11两个subview有commonAncestor时dealloc会crash,但检查代码和当版本需求后确认是DMKLocalFocusDanmuCell引入。...因此为了达到逻辑复用和对弹幕面板侵入性最少,选择了新建DanmuCell并在config时将引导关注View贴在弹幕cell,但同时UITableView中cell是会回收,为了保证关注view能响应通知...self.focusDanmuView.superview); make.left.equalTo(self.focusDanmuView.superview).offset(10); }];}// iOS

1.1K50

iOS 面试策略之系统框架-UIScrollView及其子类

[1240] 当一个屏幕无法展示 App 需要展示所有内容时,就是 UIScrollView 大展拳脚时候:通过使用 UIScrollView,用户可以滑动或是缩放屏幕,来看单个屏幕无法展示内容。...如何定制不同 Cell UI、如何与用户交互、如何与服务器端数据同步、如何在滑动时最大限度保证界面的流畅,这些都是考察要点,是一个 iOS 工程师必备基本技能。...contentSize 是指 contentView 大小。它一般超过屏幕大小,是整个 UIScrollView 实际内容大小。...关键词:#补充 #装饰 Cells,Supplementary Views,Decoration Views 共同构成了整个 UICollectionView 视图。...Delelgate 这种模式运用让整个设计扩展度和灵活度变高。 至此我们就完成了 UICollectionView 实现瀑布流全过程。

2.6K21

iOS流布局UICollectionView系列三——使用FlowLayout进行更灵活布局

iOS流布局UICollectionView系列三——使用FlowLayout进行更灵活布局 一、引言         前面的博客介绍了UICollectionView相关方法和其协议中方法,但对布局管理类...UICollectionView简单使用:http://my.oschina.net/u/2340880/blog/522613  UICollectionView相关协议方法:http://my.oschina.net...二、将九宫格式布局进行升级         在第一篇博客中,通过UICollectionView,我们很轻松完成了一个九宫格布局,但是如此中规中矩布局方式,有时候并不能满足我们需求,有时我们需要每一个...下面这两个方法设置分区头视图和尾视图是否始终固定在屏幕上边和下边 @property (nonatomic) BOOL sectionHeadersPinToVisibleBounds NS_AVAILABLE_IOS...(9_0); @property (nonatomic) BOOL sectionFootersPinToVisibleBounds NS_AVAILABLE_IOS(9_0); 四、动态配置layout

1.9K30

iOS流布局UICollectionView系列七——三维中球型布局

iOS流布局UICollectionView系列七——三维中球型布局 一、引言         通过6篇博客,从平面上最简单规则摆放布局,到不规则瀑布流布局,再到平面中圆环布局,我们突破了线性布局局限...,在后面,我们将布局扩展到了空间,在Z轴上进行了平移,我们实现了一个类似UIPickerView布局模型,其实我们还可以再进一步,类比于平面布局,picKerView只是线性排列布局在空间旋转与平移...以下是前几篇博客地址: 1.初识与简单实用UICollectionView:http://my.oschina.net/u/2340880/blog/522613 2.UICollectionView代理方法...scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x-10*320,scrollView.contentOffset.y);     } } 这里面的代码比较一篇博客中并没有什么大改动...滑动屏幕,这个圆球是可以进行滚动。 TIP:这里我们只平均分配了四个方向上布局,如果item更加小也更加多,我们可以分配到更多方向上,使球体更加充实。

1.4K20

iOS开发之窥探UICollectionViewController(五) --一款炫酷图片浏览组件

本篇博客应该算CollectionView高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天(五),可谓是由浅入深窥探了一下UICollectionView...在上篇博客《iOS开发之窥探UICollectionViewController(四) --一款功能强大自定义瀑布流》中,通过自定义CollectionView创建了一个可定制自定义瀑布流,效果还是蛮...切换图片时进行一个360度旋转,并且修改Cell层级,当前显示图片层级最高。并且移动时,如果要显示图片不在屏幕中央就做一个位置矫正。点击图片时,使用仿射变换使其放大,再点击使其缩小。...2.给StoryboardCollectionViewController关联一个类,然后我们就可以使用自定义布局了。...Cell出现在屏幕中心位置,方法如下: 1 //修正Cell位置,使当前Cell显示在屏幕中心 2 - (CGPoint)targetContentOffsetForProposedContentOffset

1.4K80

(转)iOS开发之UICollectionViewController系列(一) :Ready CollectionViewController

这几天好好搞了搞苹果开发文档CollectionViewController内容,亲身体验了一下CollectionViewController强大,之前一直认为CollectionView和...在一些开源社区分享效果比较炫代码,有不少是使用UICollectionView,UICollectionViewController是很实用,很有必要好好搞一下。 一....UITraitEnvironment 是iOS8以后才引入协议接口,它和Size Class有关,这个类封装了像水平和竖直方向Size Class等信息,iOS8UIKit中大多数UI基础类..., UIViewController, UIPresentationController 和 UIView)都实现了UITraitEnvironment 这个接口,可以通过这个接口来做一些控件显示,屏幕适配等一些工作...UIContentContainer 是iOS8之后添加协议,也是和Size Class相关协议。该协议中方法可以帮助你适配视图控制器内容,比如内容尺寸和位置等。

5.5K40

iOS开发之窥探UICollectionViewController(一) -- Ready Your CollectionViewController

之前用CollectionViewController只是皮毛,一些iOS从入门到精通书上也是泛泛而谈。...这几天好好搞了搞苹果开发文档CollectionViewController内容,亲身体验了一下CollectionViewController强大,之前一直认为CollectionView和...在一些开源社区分享效果比较炫代码,有不少是使用UICollectionView,UICollectionViewController是很实用,很有必要好好搞一下。 一. ...UITraitEnvironment 是iOS8以后才引入协议接口,它和Size Class有关,这个类封装了像水平和竖直方向Size Class等信息,iOS8UIKit中大多数UI基础类...UIContentContainer 是iOS8之后添加协议,也是和Size Class相关协议。该协议中方法可以帮助你适配视图控制器内容,比如内容尺寸和位置等。

1.6K60

iOS自定义emoji表情键盘 原

iOS自定义表情键盘 一、关于emoji表情         随着iOS系统版本升级,对原生emoji表情支持也越来越丰富。...label.font = [UIFont systemFontOfSize:25];     label.text = @"\uE056";     [self.view addSubview:label]; 就会在屏幕出现一个笑脸...二、开发表情键盘思路         首先为了实现跨平台,无论iOS端,andorid端还是web端,都要有一个相同标准,这个标准就可以是国际Unicode编码,我们思路是将表情文字进行unicode...在iOS端,可以有另一种方式,通过上面我们知道,通过SBUnicode码我们可以在客户端显示表情符号,并且这个码排列是十分有规律,通过这个特点,我们可以通过遍历SBUnicode码范围进行表情创建...追注:测试上面的SBUnicode码在模拟器可以正常显示,真机并不能识别,可以通过将表情符全部添加到一个plist文件中,通过文件读取来创建键盘方式进行真机上开发。

2.9K10

精品资源汇总:(持续更新)

电子签名上篇【核心原理:旋转特定屏幕】应用场景:采集电子签名,支持签名界面为横屏其余页面都是竖屏、清除重写、灵活控制提示语信息、以及查看商户协议等 1、原理文章:https://kunnan.blog.csdn.net.../article/details/104796781 2、功能:采集电子签名,支持签名界面为横屏其余页面都是竖屏、清除重写、灵活控制提示语信息、以及查看商户协议 3、核心原理:只旋转特定屏幕 4、核心步骤...:1、viewWillAppear设置横屏2、viewWillDisappear 设置竖屏 5、用法简单:采用block回调电子签名图片 UICollectionView自适应案例详解:【商品详情页...2、应用场景:商品详情页以及需要展示大量图片界面 3、核心原理 : 3.1)按照图片原来宽高比进行缩 3.2)UICollectionView高度自适应 II 蓝牙打印商品价格标签、交易小票...1、iOS《用户协议及隐私政策》弹框(包含超链接属性)【本文包含完整demo源码,demo支持中英文切换】 2、UICollectionView自适应案例详解:【商品详情页】(核心原理:按照图片原宽高比例进行显示图片全部内容

1K30

Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View

,它就会与屏幕顶部粘住不会隐藏,具体效果如下: 这效果第一眼看上去是不是感觉有点复杂,这效果起码得撸个百来行代码才能实现这效果啊!...事实,它既不是 Cell 视图,也不是 Supplementary View,而是 UICollectionView Decoration View;Decoration View 不同与前两者,...UIGestureRecognizer 手势拖拽 在 iOS9 之后,UICollectionView 属性自带重新排序效果,这里不得不提 Apple 为 UICollectionView 推出几个重要方法...func endInteractiveMovement() @available(iOS 9.0, *) open func cancelInteractiveMovement() 它们代表意思分别为...但当我真正去整理它一些技术点时,我发现它实在是太灵活了,以前觉得追加视图,装饰视图这些东西很简单,几行代码事情,但事实,当你想要去实现一些高度自定义界面的时候,你才会认识到自己不足,你并没有对这些知识有更深层次认知

1.9K10

iOS10 Swift3.0 XCode 8 总结

1,iOS10 新增privacy settings iOS10添加了新权限控制范围 如果你尝试访问这些隐私数据时得到如下错误: > This app has crashed because it...layoutIfNeed iOS10 在一个控件上调用layoutIfNeed是只会单独计算约束,它所约束控件不会生效,想要达到之前效果需要在父级控件上调用layoutIfNeed 4, NSDate...UIStatusBarStyleDefault; } 11, iOS10 UICollectionView 性能优化 在iOS10 UICollectionView 最大改变是增加了Pre-Fetching...(10_0);@end 12, iOS10 UITableView 性能优化 和UICollectionView一样UITableView也增加了Pre-Fetching技术,UITableView新增了如下属性...(10_0); 奇怪是UITableView并没有找到 isPrefetchingEnabled属性定义 13,iOS10 UIScrollView 新增 refreshControl 属性 UIScrollView

74810

iOS流布局UICollectionView系列六——将布局从平面应用到空间

iOS流布局UICollectionView系列六——将布局从平面应用到空间 一、引言         前面,我们将布局由线性瀑布流布局扩展到了圆环布局,这使我们使用UICollectionView布局思路大大迈进了一步...iOS系统控件中,也并非没有这样先例,UIPickerView就是很好一个实例,这篇博客,我们就通过使用UICollectionView实现一个类似系统UIPickerView布局视图,来体会...UICollectionView在3D控件布局魅力。.../2, self.collectionView.frame.size.height/2); 这时,如果我们运行程序的话,所有item都将一层层贴在屏幕中央,如下: ?...已经可以进行滑动,但是并不是我们想要效果,滚轮并没有滚动,而是随着滑动出了屏幕,因此,我们需要在滑动时候不停动态布局,将滚轮始终固定在collectionView中心,先需要在布局类中实现如下方法

1.4K20

iOS学习——tableview中带编辑功能cell键盘弹出遮挡和收起问题解决

这个问题在之前我们随笔iOS学习——键盘弹出遮挡输入框问题解决方案中也有讲过对应解决方案,但是该方案在最近应用中还有点小问题,我们在这里重新进行处理好。...中self.view实际就是对应UITableView或UICollectionView,所以会出现一些莫名其妙bug,显示不出来或者显示位置不对。...2.2 自定义包含UITextFieldUITableViewCell   首先,我们在点击编辑区域时候,获取到当前编辑区域相对屏幕位置,这样方便我们判断整个tableview是否需要移以及需要移多少比较合适...,开始编辑时候返回当前cell相对屏幕位置方便我们控制是否移tableview,结束编辑时返回我们编辑框内容方便进行记录。...  我们在对tableview移进行调整时,我们需要知道当前编辑cell相对屏幕位置,然后才能判断是否需要移tableview以及移多少。

3.9K80

iOS开发之窥探UICollectionViewController(三) --使用UICollectionView自定义瀑布流

上篇博客实例是自带UICollectionViewDelegateFlowLayout布局基础上来做Demo, 详情请看《iOS开发之窥探UICollectionViewController(二)...UICollectionView之所以强大,是因为其具有自定义功能,这一自定义就不得了啦,自由度非常大,定制高,所以功能也是灰常强大。本篇博客就不使用自带流式布局了,我们要自定义一个瀑布流。...ContentSizeWidth就是屏幕宽度,而ContentSize高度是一列中最后一个CellY坐标加上其自身高度最大值。在此函数中会调用求CellY数组中最大值。...瀑布流实现关键点如下:    (1)Cell宽度计算:如果瀑布流列数和CellPadding确定了,那么每个Cell宽度再通过屏幕宽度就可以计算出来了。    ...例如有5列Cell, 那么Cell中间间隔就有4(5-1)个,那么每个Cell宽度就是屏幕宽度减去所有间隔宽度,再除以列数就是Cell宽度。如果没听我啰嗦明白的话,直接看代码吧,并不复杂。

1.3K100
领券