2.jpg Swift对于一门新的iOS编程语言,他的崛起是必然的 我们这群老程序员们学习新的技能也是必然的 不接受新技能将被这大群体无情的淘汰 So 我欣然接受这门看似不成熟的语言 下面我们说说...Swift中比较常见的控件UICollectionView 首先我们设置一个全局的UICollectionView和一个数据源 var colltionView : UICollectionView...,UICollectionViewDelegateFlowLayout 接下来我们要做的是override func viewDidLoad()方法中初始化一些必要的对象 override func...没错,我们的headview是不是还没整啊? 接下来呢,我们看下UICollectionView的headview该怎么设置 重点在这里!...更多经验请点击 原文在:http://www.allluckly.cn/ 最终效果图如下 Swift_CollTionView.gif 推荐一款学习iOS开发的app_____|___
UICollectionView横向分页的问题 情况 直接看图 滚前 滚后 已经设置collectionView的isPagingEnabled为true了,可是出现了这种情况,原因就是collectionView..., 0}; contentSize: {562.5, 192.25} > 解决方案 有两种方式可以解决,数据只有11个,要分两页需要16个,那我们可以直接添加数据到16个,然后在dataSource中返回...),让UICollectionView在创建的时候使用了它 在 LXFChatMoreCollectionLayout.swift 中我们需要重写父类的collectionViewContentSize...ceil(2)=ceil(1.2)=cei(1.5)=2.00 效果 至于如何让item水平布局,请参考《iOS - Swift UICollectionView横向分页滚动,cell左右排版》 附上相关项目...:Swift 3.0 高仿微信
效果图 接下来就是具体的实现。 1. 创建ViewController 命名为SHomeViewController。 2. 声明 UICollectionView。...设置代理,这里Xcode会提示有错误,暂时不用管,实现UICollectionView的代理方法后这个错误自然就没有了。...的代理方法。...// // SHomeViewController.swift // // Created by wangjie on 16/5/4. // Copyright © 2016年 wangjie....从这个例子中我们发现Swift语言还是很简洁的。
答案当然是肯定的,在 UICollectionView 控件中我们管这叫 Supplementary View, 翻译过来就是 "追加视图",那在 UICollectionView 中该怎么实现给每个...为 UICollectionView 添加 Supplementary View 首先看下效果图: 具体代码逻辑如下,注释已经在代码中添加: // // BaseAPIViewController.swift...在接下来的内容中,你将会学到以下知识点: 1.如何在 UICollectionView 中创建 Decoration View2.自定义布局属性,计算 section 的背景图位置和大小3.实现 UICollectionView...新建一个继承自 UICollectionReusableView 的类,代码如下: // // DecorationView.swift // SwiftScrollBanner // // Created...(UIViewController)中呈现了,但是为了更进一步体现 UICollectionView 的强大,我还实现了一个功能,那就是使得书架里的书可以自由拖拽排序,这里就用到了另外一个知识点:手势
---- 最近由于我们的UI设计钟情于圆角搞得我很方,各种圆角渐变,于是就有了下面这篇给UICollectionView的组设置圆角和背景色的一个小封装,拿出来和大家分享一下,里面的具体的一下细节都在代码注释里面...我们都应该知道UICollectionView我们要想自定义一些东西或者布局几乎都是通过Layout下手的,那我们要给它设置组背景色和组圆角是不是也在这里进行呢?...我们大致的思路是这样的: 给UICollectionView 每一组添加一个修饰View,然后在这个修饰View上我们设置组圆角和背景色,最后我们把CollectionCell 设置成 Clean背景就可以达到我们想要的效果...@objc optional func backgroundColorForSection( collectionView:UICollectionView...removeAll() /// 设置背景和圆角 self.setSectionBackgaoundColorAndCorner() } /// 返回rect中的所有的元素的布局属性
情况 最近在做表情键盘时遇到一个问题,我用UICollectionView来布局表情,使用横向分页滚动,但在最后一页出现了如图所示的情况 只显示一半 情况分析图 是的,现在的item分布就是这个鬼样子...从上到下,从左到右 现在想要做的,就是将现在这个鬼样子变成另外一种样子,如图 从左到右,从上到下 那怎么办?...只好重新布局item了 解决方案 我是自定了一个Layout(LXFChatEmotionCollectionLayout),让UICollectionView在创建的时候使用了它 在 LXFChatEmotionCollectionLayout.swift...中 添加一个属性来保存所有item的attributes // 保存所有item的attributes fileprivate var attributesArr: [UICollectionViewLayoutAttributes...rectAttributes.append($0) } }) return rectAttributes } } 附上相关项目:Swift
上一篇介绍了如何使用swift纯代码构建UIColletionView,本篇继续介绍如何对其分组、设置分组标题、cell 圆角、选中变色。 效果图如下: ?...// // SHomeHeader.swift // // Created by wangjie on 16/5/4. // Copyright © 2016年 wangjie....//设置HeadView的宽高 func collectionView(collectionView: UICollectionView, layout collectionViewLayout...backgroundColor = UIColor.whiteColor() } 5.自定义圆角带边框的UICollectionViewCell。...// // SHomeCell.swift // // Created by wangjie on 16/5/4. // Copyright © 2016年 wangjie.
{ return 10; } //定义展示的Section的个数 -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)...collectionView { return 2; } //每个UICollectionView展示的内容 -(UICollectionViewCell )collectionView:(UICollectionView...的 margin -(UIEdgeInsets)collectionView:(UICollectionView )collectionView layout:(UICollectionViewLayout...被选中时调用的方法 -(void)collectionView:(UICollectionView )collectionView didSelectItemAtIndexPath:(NSIndexPath...如果要永久改变,可以先改数据源,然后在cellForItemAtIndexPath中控制。(和UITableView差不多吧!
大家好,又见面了,我是你们的朋友全栈君。...//点击选定 – (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath...NSLog(@”第%ld区,第%ld个“,(long)indexPath.section,(long)indexPath.row); } //取消选定 -(void)collectionView:(UICollectionView
【Swift专题】聊聊Swift中的属性 引言 属性是面向对象语言中非常基础的语法特性,我们讲属性,实际上就是讲与类本身或类实例关联的数据。...在面向对象的语言中,类作为重要的数据结构会封装数据与函数,类中的函数我们通常称其为方法,而数据则就是属性。 Swift语言是一门比较现代化的语言,并且直到今日,其还在不断进行语法特性与编程模式的更新。...在Swift中,计算属性可以在_类、结构体和枚举中定义,而存储属性只允许在**类**和结构体_中定义。 存储属性 存储属性定义在类或结构体中,可以将存储属性定义为常量也可以定义为变量。...另外,Lazy只能修饰定义为变量的属性,不能修饰常量属性,这是因为懒加载的本身逻辑是与Swift常量属性的性质相悖的,Swift中的常量属性必须在实例构造好前完成初始化,而懒加载的属性是允许实例构造完成后属性并未初始化的...还有一点需要注意,一般情况下,我们无需访问属性包装器中真实存储数据的存储属性,但Swift语言也提供了一种方式来访问此属性的值,仍然是通过语法规范约定的方式,只需要将属性包装器中存储属性的属性名定义为projectedValue
使用流式布局 继承 UICollectionViewDataSource,UICollectionViewDelegateFlowLayout 设置 Swift self.collectionView.register...self.collectionView.collectionViewLayout = flowLayout; self.collectionView.dataSource = self; self.collectionView.delegate = self; 代理方法 Swift...的下标 NSIndexPath *firstIndexPath = [[self.collectionView indexPathsForVisibleItems] firstObject];...,对应的class文件如下 class QuestionBookHeader: UICollectionReusableView { @IBOutlet weak var titleLabel:...QuestionBookHeader; if(indexPath.section == 0){ header.titleLabel.text = "我的分类" }else
async-await 是在 WWDC 2021 期间的 Swift 5.5 中的结构化并发变化的一部分。Swift中的并发性意味着允许多段代码同时运行。...async 如何取代完成回调闭包 async 方法取代了经常看到的完成回调。完成回调在Swift中很常见,用于从异步任务中返回,通常与一个结果类型的参数相结合。...执行数据请求 } 在如今的Swift版本中,使用完成闭包来定义方法仍然是可行的,但它有一些缺点,async 却刚好可以解决。 你必须确保自己在每个可能的退出方法中调用完成闭包。...Swift中引入的withCheckedThrowingContinuation方法,可以不费吹灰之力地转换基于闭包的方法。...继续你的Swift并发之旅 并发的变化不仅仅是 async-await,还包括许多新的功能,你可以从你的代码中受益。
上一篇曾经说过,2020 年我接触了项目管理、iOS 开发、goLang 开发,所以,后续更新的内容也会逐步丰富起来。 如果你觉得这个公众号对你有帮助,不妨推荐给你的小伙伴们,谢谢。...---- 在 Swift 中实现循环/遍历有如下几种方式: 1.1 for-in 1.1.1 遍历区间 1.1.1.1 顺序遍历 for index in 0 ..< 5 { print(index...指定闭区间 使用 range.reversed() 来指定逆序循环 如果在循环体中,不需要使用 index,则可以用 _ 替换 index 1.1.2 遍历数组 1.1.2.1 顺序遍历 let test...我们可以实现 Strideable 协议,也可以使用 Strideable 协议中 stride 方法直接进行循环操作 1.3.1 使用 stride(from,to,by) 顺序循环 0 至 10(...Int ,当我们想对自己定义的类型进行循环时,这样的方式并不方便,好在我们可以使用 Strideable 协议解决这个问题 首先我们定义一个类,代表素数 class Prime { public
前言 任何语言中最常用的就是for循环了 但是Swift的for循环语法一直在变 基本遍历 //0到9 for i in (0..<10) { print(i) } //0到10 for i...数组遍历 获取索引 for (index, element) in list.enumerated() { print("Item \(index): \(element)") } 循环过滤 //swift...闭包可以省略参数且用$0匿名,第二个参数则用$1,以此类推 for i in (1...10).filter({ $0 % 2 == 0}) { print(i) //输出结果为1-10之间的偶数
iOS流布局UICollectionView系列二——UICollectionView的代理方法 一、引言 在上一篇博客中,介绍了最基本的UICollectionView的使用和其中我们常用的属性和方法...,也介绍了瀑布流布局的过程与思路,这篇博客是上一篇的补充,来讨论关于UICollectionView的代理方法的使用。...博客地址: UICollectionView的简介和简单使用:http://my.oschina.net/u/2340880/blog/522613 二、UICollectionViewDataSource...下面的方法是可选实现的: 虽然这个方法是可选的,一般我们都会去实现,设置分区数 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView...*)collectionView shouldShowMenuForItemAtIndexPath:(NSIndexPath *)indexPath; 长按菜单中可以触发一下类复制粘贴的方法,效果如下
Swift 中的 Task 是 WWDC 2021 引入的并发框架的一部分。任务允许我们从非并发方法创建并发环境,使用 async/await 调用方法。...然而,任务通过消除冗长的调度队列代码,使我们的生活变得相当不同且更轻松。 您可以在我的文章 Swift 中的async/await了解有关 async/await 的更多信息。...如何创建然后运行一个 Task 在 Swift 中创建一个basicTask如下所示: let basicTask = Task { return "This is the result of...不支持并发的函数中的“async”调用是 Swift 中的常见错误。...继续您的 Swift 并发之旅 并发更改不仅仅是async-await,还包括许多您可以在代码中受益的新功能。
如果你没有使用过async/await,我鼓励你阅读我的文章:Swift 中的 async/await。...继续你的Swift并发之旅 如果你喜欢你所读到的关于异步序列的内容,你可能也会喜欢其他的并发主题: Swift 中的 async/await Swift 中的 async let Swift 中的 Task...Swift 中的 Actors 使用以如何及防止数据竞争 Swift 中的 MainActor 使用和主线程调度 理解 Swift Actor 隔离关键字:nonisolated 和 isolated...Swift 中的 Sendable 和 @Sendable 闭包 Swift 中的 AsyncThrowingStream 和 AsyncStream Swift 中的 AsyncSequence 结论...AsyncSequence是我们在Swift中熟悉的常规Sequence的异步替代品。
今天给大家分享一个有关链接的问题,一个页面中哪些链接更有价值:是导航中的链接?还是内容中的链接?还是页脚上面的链接?现在,如果其中一个内容链接是一个图片,一个是文本?...很显然,导航在网站的每一个页面都是存在的,是普遍性;而内容中的链接,不可能在网站所有页面都存在这样的链接,是稀缺性。...②、页脚中的链接经常被贬值 因此,如果您的页脚中有一个链接,不管这个链接是存在在首页、频道页面或是详情页面等等,这里的链接可能不会有太大的权重值。事实上,除了索引之外,有时它似乎几乎没有任何作用。...2 链接的位置和类型对链接也有影响 ①、内容链接将比页脚或导航链接更有价值 一般来说,导航链接将比页脚更好。但是,如果能从页面正文内容中获取好的链接的位置,那么您将获得最大的链接值。...②、如果您在新标签页或新窗口中打开的链接与在同一个选项卡中打开的链接相同,该怎么办? 这似乎并不重要。根据使用场景进行考虑,是新窗口打开,还是原选项卡中打开。
网页的排版、内容的布置、链接的设置以及页眉页脚和标签的设置,都考验一个网站设计人员的功底。那么建设网站怎么设置页脚?...建设网站怎么设置页脚 页脚是一个网页的底端信息,一般会有一些链接,包括企业的主要信息、业务介绍和联络方式、地址等等。还有很多网站在页脚会加入一些友情链接的网站网址。...页脚的容量很小,也很关键,所以建设网站怎么设置页脚也是一个大问题。...在设置页脚内容时,要简洁大方,不要加入动态模式,也要合理布局分配页脚的信息,因为页脚的空间非常有限,所以要尽量放置重要信息和链接,而不要放置空链网站。...页脚和页眉的区别 建设网站怎么设置页脚和怎么设计页眉一样重要。两者的区别虽然很大,但是对于一个完整的网站来说,它们的设置都是非常关键的。
项目中想实现空态页风格统一控制的效果,就封装了一个默认空态页,使用的技术点有:1 方法替换 ,2 给分类(Category)添加属性。 ...但是分类(Category)不可以,但是我们又想在原生的UITableView和UICollectionView上添加空态页,所以使用了黑科技runtime中提供的对象关联。