首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

[1240] 当一个屏幕无法展示 App 需要展示的所有内容时,就是 UIScrollView 大展拳脚的时候:通过使用 UIScrollView,用户可以滑动或是缩放屏幕,来看单个屏幕无法展示的内容。...例如布局计算或是非 UI 对象的创建和调整就可以如此操作。Linkedin 推出的 LayoutKit 就是很好的例子。 第三个问题。...假设我们已经有了 UICollectionView,现在要做的就是定制化每一个 cell,让他们的高度根据其实际内容设定,从而实现瀑布流。...高度我们可以先设定为 0,之后在 prepare() 里进行更新。 prepare()。该方法发生在 UICollectionView 数据准备好,但界面还未布局之时。...完成这些设定之后,我们发现 UICollectionView 里每个 item 里的高度需要从含有 UICollectionView 的 ViewController 里获得。

2.6K21

Swift 自定义布局实现瀑布流视图

自打 Apple 在 iOS6 中引入 UICollectionView 这个控件之后,越来越多的 iOS 开发者选择将它作为构建 UI 的首选,如此吸引人的原因在于它的可定制化程度非常的高,非常的灵活...查阅苹果的文档可以得知,UICollectionView 的布局是抽象类 UICollectionViewLayout 的子类,它定义了 UICollectionView 中每个 item 的布局属性叫做...UICollectionViewLayoutAttributes,所以我们可以通过继承 UICollectionViewLayout,然后对每个 item 的 UICollectionViewLayoutAttributes 做调整...由于我们瀑布流视图的每个 Cell 的高度是动态的,为了实现这个需求,我们可以声明一个 protocol 并提供一个返回动态高度的方法,来为每个 Cell 提供动态的高度,代码如下: protocol...这里我的策略就是通过追踪计算每一列的高度值来得出最小高度的那一列,由于已知当前有最小高度的那一列的高度值以及索引值,那我们就可以为一个 Cell 计算得出它新的 X 坐标 和 Y 坐标,然后重新对该 Cell

2.4K30

Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View

如果你的产品经理给你提了一个需求,要求你要为 UICollectionView 的 section 设置背景, 但当你查阅文档的时候,你就会发现 UICollectionView无法通过属性设置来为...它无法通过数据源来设置,而是只能由布局对象来定义和管理。...拖拽调整顺序 在我们开始之前先看下效果图: 这效果还不错吧!...添加手势后,根据手势提供的三种状态,分别调用上面的四个方法,来实现拖拽排序;另外,既然 Cell 的顺序会被调整,那我们还得及时的更新数据源,来保证视图刷新后,导致拖拽的结果被还原,具体实现代码如下:...但当我真正的去整理它的一些技术点时,我发现它实在是太灵活了,以前觉得追加视图,装饰视图这些东西很简单,几行代码的事情,但事实上,当你想要去实现一些高度自定义的界面的时候,你才会认识到自己的不足,你并没有对这些知识有更深层次的认知

2K10

关于首页设计框架和一些细节处理分析

这个一个横向的 Banner 高度随着后台返回尺寸自动自适应 如果返回的 Banner 数组为空则隐藏 第二部分 ?...这是放置广告位的 设计说目前也就四个 我为了以后可以扩展 就做成如果超出四个就可以横向滚动 按钮的高度随着后台返回尺寸自动自适应 如果返回的元素都没有则隐藏这一栏 第三部分 ?...我下面的商品列表可以切换频道 之前不可以切换 自己当时尝试写了1.0的框架 后来无法满足我们设计这个界面需求 废弃了 我就从 Github 找了几个开源库,看到他们的首页我们的很相似 开始我是这样的...我们的 Header 是很高的呀 完全行不通呀 后来继续找了几个库 添加 删除 那几天把我折腾的 差点要封掉 后来终于找到了一个第三方 可以满足90%的需求 只是底部又是会多出40高度 滚动无法联动 bug...这是之前没做任何处理 显示的结果 导致下面的频道还没有在最上面时候 滚动下面 导致上面无法联动走了。

80920

图片转ASCII字符图案的原理(可调整亮度对比度 宽高度)

可以照着链接在自己电脑跑一下, 制作一些白色背景的表情包, 但如果是照片的话会发现很糊, 根本看不清, 于是我拿出神器 Photoshop 调整了 亮度 和 对比度, 尽量调高点, 生成的图案会清晰一些...每次都去 Photoshop 调整真是繁琐, 每次失败了, 得重新用命令行生成, 然后看生成的图案怎么样, 一直重复这个步骤...而且宽度和高度都需要手工指定...所以萌生了这个想法: 把这些重复繁琐的操作...return Math.round(255 / 100 * ((116 * y) - 16)); } }; OK, 目前我们已经实现了彩色的像素值变成ASCII字符, 接下来要解决一个问题, 调整图像的亮度和对比度...return [x - 127.5 * (1 - B)] * k + 127.5 * (1 + B); }); } 最后, 我们只需把用户选择的图片, 转换为 RGB 值, 加上亮度对比度, 宽度高度的变换...代码是用 Vue2 写的(上面的代码都是再里面摘出来的), 结合了饿了么前端框架做界面, 目前先这样, 有时间再调整下界面吧.

27310

实践-小细节Ⅴ

避免多个UICollectionView 在一个View中 ?...如果你在一个页面中创建了多个 UICollectionView 它们使用一套代理方法,也许在每个代理方法中你对当前的UICollectionView 做了判断,使用了不用的数据源,可是你会发现还是有莫名其妙的...正确的做法是: 如上图的效果,自定义一个包含一个Label 一个UICollectionView的视图,创建两个对象即可,这样可避免多个UICollectionView使用一套代理协议造成的莫名其妙的...image.png 图中使用的是一个Label,为什么会出现图中这样的问题,出现顶部的大片空白是因为这个Label的高度太高,而内容却相对较少,把Label的高度设置短点即可。...不过对于一个链接为 http:XXXXXXXXXXXX.swf 的视频链接,使用原声的视频播放器是无法播放的,而且使用 UIWebVIew加载也是无法显示的,可以这样理解,苹果封杀了 Flash文件(swf

76010

iOS开发之窥探UICollectionViewController(四) --一款功能强大的自定义瀑布流

在上一篇博客中《iOS开发之窥探UICollectionViewController(三) --使用UICollectionView自定义瀑布流》,自定义瀑布流的列数,Cell的外边距,Cell的最大以及最小高度是在我们的布局文件中是写死的...在今天这篇博客中我们要接着上篇博客中的Demo,使其自定义布局的属性在使用它的UICollectionView中是可配置的。...如果想使用该布局文件,你需要为我们的UICollectionView来指定该布局文件,在本篇博客中的Demo中是在Storyboard中进行自定义布局文件的指定的,你也可以通过代码的方式指定,再次不做过多的赘述...你可以通过这些方法去设定cell的列数,Cell的外边距,Cell的最小高度,Cell的最大高度,如下所示: #pragma mark - (NSInteger) numberOfColumnWithCollectionView: (UICollectionView *)collectionView

81090
领券