Reusable Reusable是一个在swift下使用的开源库。利用protocol extension结合泛型提供了一个优雅的方案来dequeueReusableCell。...使用 根据类型获取cell让你的cell声明Reusable或NibReusable协议 //如果cell定义在xib中,声明NibReusableclass MyCustomCell: UITableViewCell...或者collectionView中register tableView.register(UINib.init(nibName: "MyCustomCell", bundle: nil), forCellWithReuseIdentifier...: "MyCustomCell") 粗暴的直接获取cell就可以啦: func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath...根据类型获取xib中的UIView对象 UIView对象声明NibLoadable协议。
1、修改UISearchBar的搜索框底色 使用以下代码: setSearchFieldBackgroundImage(CommonUseClass....} 2、修改UITextField的placeholderLabel的默认字体颜色 inputTextField.text = "123" //备注:因为苹果公司开发过程中使用的是懒加载,所以如果不提前进行设置储值...UICollection使用的是一个UICollectionReusableView来进行创建 collectionView.register(UICollectionReusableView, forSupplementaryViewOfKind...运行效果: 提示:之所以为空白,是因为我把下拉列表中的tableView.reloadData()这行代码屏蔽掉了,加入的数组没有刷新。...6、隐藏navigationBar和tabbar的黑色分割线 //隐藏navigationBar下面的分割线 self.navigationController?.
iOS中,UICollectionView和UITableView已经有系统默认选中颜色设置,但是只有无色,蓝色,灰色,三种颜色设置,如果想要其他的颜色效果,我们可以自由自定义设置。...前言 先观赏一下典型的UITableView控件案例 ? image.png 典型的UICollectionView控件案例 ?...cell的代理方法中作如下设置: cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.frame]; cell.selectedBackgroundView.backgroundColor...文件中重写如下方法: 示例: UITableViewCell.m - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{...注意的是,方案一和方案二不要重复设置。另外,二者择一的话,推荐方案一。
实例化TableCell 在设置delegate之前注册xib Swift self.tableView.registerNib(UINib.init(nibName: "ImageLabelTableViewCell...:@"ImageLabelTableViewCell" forIndexPath:indexPath]; 如果用的storybord中的tableview的cell直接用dequeueReusableCellWithIdentifier...方法就行了 注意dequeueReusableCellWithIdentifier方法是从已经实例化的cell中查找id为textLeftCell的对象并进行拷贝 实例化视图控制器 从storyboard...中 Swift self.storyboard?....:@"MyCell"]; 实例化Cell Swift let cell = self.collectionView.dequeueReusableCellWithReuseIdentifier("MyCell
一个很常见的需求就是在一个cell上点赞,评论等操作时,需要刷新单个cell对象,常用的方法即为: [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects...,原因是 上述刷新过程中,虽然我们已经设置UITableViewRowAnimationNone,但任然会默认添加隐式动画效果。...方法1:(支持iOS7+) [UIView performWithoutAnimation:^{ [self.tableView reloadRowsAtIndexPaths...animateWithDuration:0 animations:^{ [collectionView performBatchUpdates:^{ [collectionView...setAnimationsEnabled:NO]; [self.tableView performBatchUpdates:^{ [self.tableView
介绍 UIView 会占用屏幕上一个矩形的空间。 主要处理两件事:画出矩形控件,并处理其中的事件。 UIView 是层级结构,UIView 只有一个父 View,但可以有多个子 View。...子 View 的顺序和子 View 返回的数组中的位置有关(storyboard 中左侧的树形结构图中的先后顺序)。...UIView 可以直接在 storyboard 里面拖拽使用,也可以使用纯代码方式使用。 UILabel、UITextField、UIButton UILabel 显示静态文本。...} } 静态单元格 需要使用 UITableViewController。 直接在 storyboard 中布局,不需要使用数据源方法,但如果需要使用到代理方法,仍然需要在控制器中实现相应的方法。...UITableViewDiffableDataSource 在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView
为了良好的交互体验,相信大家在对待scrollView无数据时的提示页都会使用一些第三方来定制,最典型的就是使用DZNEmptyDataSet。...或者collectionView都是写在控制器里,那我们面向的类就规定为UIViewController,或许也有人写在UIView里,不过这里先按UIViewController来写吧 // MARK...delegate和source设置为了self ,而协议是无法遵守再次遵守其它协议的,那让什么来遵守对应的协议呢?...要明白这里的self指的是UIViewController,考虑到UIView的可能,这里我就让万物对象之父NSObject来遵守,并实现对应的数据源方法和代理方法 extension NSObject...可以使用Cocoapods的方式来安装使用 pod 'LXFProtocolTool' 我也将 iOS - Swift 面向协议编程(二) 中提及的通过协议便捷加载xib的功能也集成了进来。
MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。...Snap - Snap是Masonry Auto Layout DSL的Swift版本,是一款轻量级的布局框架,使用了更良好的语法封装了AutoLayout。Snap支持iOS和OS X。...UIView-FDCollapsibleConstraints - 一个AutoLayout辅助工具,最优雅的方式解决自动布局中子View的动态显示和隐藏的问题。...支持Cell、Label和Tableview高度自适应,致力于做最简单易用的AutoLayout库。 Neon.swift - 功能强大的 UI 布局神器。...FXLabel - FXLabel是一个功能强大使用简单的类库,通过提供一个子类改进了标准的UILabel组件,为字体增加了阴影、内阴影和渐变色等,可以被用在任何标准的UILabel中。
前言 Hello, 大家好,今天准备和大家继续分享如何利用 Swift 来实现一个网易云音乐的首页;上俩篇文章文章发布以后,我收获了不少小伙伴的关注与点赞,同时也得到了一些非常有用的建议,在这里再次感谢大家的认可...MVVM 好了,回到正题,在项目中我们使用了 MVVM 模式,在上一篇文章中,我们讲完了 Model 和 ViewModel, 那接下来就开始讲第三部分 View 吧!...在我们实际开发过程中,数据请求的操作必不可少,必须要先将数据提供给 ViewModel,然后在数据更新时重新 Reload TableView。...关于 headView 的实现方式,想必使用过 UITableView 的同学都不会陌生,可以通过下面的方法来实现: - (nullable UIView *)tableView:(UITableView...具体实现该效果的代码在这里我就不做多阐述了,因为在我之前的文章中,我已经将实现这个效果的教程写出来了,查看此文即可:使用 UICollectionView 实现首页卡片轮播效果 圆形菜单入口 该效果实现起来很简单
对象生命周期:创建,操纵和销毁系统对象(即创建一个UIView) 当正确使用时,AsyncDisplayKit 允许您在默认情况下异步执行所有测量、布局和渲染。...在这两部分 AsyncDisplayKit 2.0 教程中,你将掌握使用ASDK构建一个实用的和动态的应用程序的所有要素。在第一部分中,你将要学习一些在你构建应用程序时可以用到的宏观思想。...免责声明:ASDK不兼容 Interface Builder和AutoLayout,因此,您将不会在本教程中使用它们,虽然ASDK完全支持Swift(除了ComponentKit),许多开发者仍在使用...免费App排行榜前100大多数都没有使用Swift(至少6个使用ASDK)。出于这些原因,本系列将重点介绍 Objective-C。话虽这么说,我们已经包括了一个Swift版本的实例项目。...假设你有一个竖直滚动的tableView,在其中某些Cell包含了水平滚动的 collectionView。
3.3 分析及实现 3.3.1 需要添加埋点统计的地方 button 相关的点击事件 页面进入、页面推出 tableView 的点击 collectionView 的点击 手势相关事件 3.3.2 分析...对于 tableview 及 collectionview,我们 hook下setDelegate: 方法。...检测其有没有实现对应的点击代理,因为 tableView:didSelectRowAtIndexPath: 及 collectionView:didSelectItemAtIndexPath: 是 option...和 UIViewController 生命周期埋点不同的是,一个类中可能有许多不同的 UIButton 子类,相同的 UIButton 子类在不同的视图中的埋点也要区分出来,所以我们通过 NSStringFromClass...tableView、collectionView、手势的点击事件与上述实现方法类似。
tableview的数据源和代理协议。...reload这一行,在heightForRow代理方法中判断isExpand,返回小明已在FeedCellModel中已经计算的两个高度(初始高度和全部高度)。...class CommentTableView: UIView { var tableView: UITableView var comments: [Comment] {...CollectionView 中的一个 section 中的 cell。...准备工作:布局collectionView和绑定适配器 BaseListViewController.swift let collectionView: UICollectionView =
4.使用UIAlertView做简单文本框输入 使用UIAlertView做登录输入, 默认的是 登录名、密码,我们可以修改 TF的placeholer字体来达到我们想要的效果。...我们可以利用Model的Start时间戳来实现cell中的倒计时。 ?...Paste_Image.png 不过这里是另一种实现思路,也挺不错的:iOS在cell中使用倒计时的处理方法 6.列表和网格视图的相互切换 ?...根据全局的 isGrid 设置CollectionView 每个Cell的尺寸大小 SizeForItemAtIndexPath函数 在自定义CollectionViewCell中设置一个 是否为网格的属性...image.png 9 渐渐消失的效果 iOS有私有iPA可以实现这样的效果,不过有可能被拒绝,还是使用UIKit动画比较稳 [UIView beginAnimations:nil context:nil
内存堆和栈的区别、为什么堆上面效率高 liunx上有没有写过进程通信的代码 www.google.com 之后发生了什么 Https 加密过程 tcp三次握手 swift struct 和class 区别...2020年 1-20 1、2面 一面 1 tableview 重用机制 滑动性能调优方法 2圆角效率问题 离屏渲染 3calayer 与uiview 区别 为什么这么设计 4swift 消息机制 5 多线程如何保证线程安全...的联系与区别 为什么uiview可以响应事件 tableview的重用机制以及与collectionview的区别 cpu和gpu的区别 离屏渲染 mvvm与mvc 项目亮点 野指针处理 内存管理 深拷贝与浅拷贝...除了gcd group之外 其他方法 信号量与锁的区别 mvc和mvvm的区别 为什么从swift开始学 如何学习iOS的 有什么要问的?...第三题:手写代码 1、使用递归,计算从1加到100的值 2、使用递归,计算从 n 加到 m的值 (n < m) 3、使用递归,计算从 n,n+t, n+2t, .... n+ mt 的值 (m >=1)
简单的说,在显示占位的时候,将tableView的代理设置为通过某个对象,这个对象根据cell的Idenfier创建cell并添加占位显示。...关闭显示占位的时候,将代理tableView的代理切回ViewController,正常显示。 特点 不需手动写占位控件,不需处理圆角等问题,占位效果与实际控件布局一致。...TABAnimated 除此之外,TABAnimated也是一个被使用的比较多的,同样TABAnimated也是扩展的UIView。...// UIView和UICollectionView枚举 typedef NS_ENUM(NSInteger,TABViewAnimationStyle) { TABViewAnimationDefault...源码地址:https://github.com/sharish/ShimmerRecyclerView Skeleton Skeleton也是一个使用得比较广泛的库,它现在使用闪存动画的内存优化版本,因此速度更快
TableView的功能就已经很强大了,,CollectionView就是TableView的升级版,其功能更为强大。...以后的几篇博客中好好的研究一下CollectionView,由浅入深,层层深入,搞透CollectionView这个强大的组件。...(包括UIScreen, UIWindow, UIViewController, UIPresentationController 和 UIView)都实现了UITraitEnvironment 这个接口...你可以重写loadView或者其他超类中的方法,但是如果你这样做, 你必须确保在你实现的方法中使用super调用了超类中相应的方法。...3.在代码中实现相应的代理,和TableView非常类似 (1) 返回Section个数的方法 Objective-C - (NSInteger)numberOfSectionsInCollectionView
TableView的功能就已经很强大了,,CollectionView就是TableView的升级版,其功能更为强大。...以后的几篇博客中好好的研究一下CollectionView,由浅入深,层层深入,搞透CollectionView这个强大的组件。...(包括UIScreen, UIWindow, UIViewController, UIPresentationController 和 UIView)都实现了UITraitEnvironment这个接口...你可以重写loadView或者其他超类中的方法,但是如果你这样做, 你必须确保在你实现的方法中使用super调用了超类中相应的方法。...3.在代码中实现相应的代理,和TableView非常类似 (1) 返回Section个数的方法 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView
一直没有很好的理解这两个的区别,今天Google了一下,有了比较清楚的认识。...By default animation and rotation will be based on the center of the UIView....property. bounds - this property is not a positioning property, but defines the drawable area of the UIView...mainScreen] bounds] on startup to determine the visible area for the application and setup their initial UIView.... ---- Previous Objective-C 私有方法 Next NSLog中使用的格式符
*)str //在UIKit Cocoa中 声明property会具有setter getter 除非你要重写 4.排版约定 (每个公司的代码规范会有些不同,但大都遵循一定的规范) 在一份view.m...文件中应遵循统一的排版 // // .m // app // // Created by you on 202x/x/xx. // Copyright © 2021 you....self addSubview:self.backgroundView]; [self addSubview:self.XXXCloseButton]; } #pragma mark - tableView...4个 7.通知KVO和异常 [关联类的名称] + [Did | Will] + [房间] + 通知 static NSString *const CurrenClassNameWillMoveNotification...selector:@selector(turnBackToRoom:) name:@"CurrenClassNameWillMoveNotification" object:nil]; 8.枚举 对具有整数相关的常数使用枚举
前言 原理:利用cancelsTouchesInView属性,控制点击事件优先级 I 设置tableView的点击事件优先级低于cell的选中事件 1.1 应用场景 场景1:比如筛选视图,监听蒙版的点击事件就隐藏筛选视图...在这里插入图片描述 场景2:商品列表的商品点击事件,设置低于右侧的操作按钮的点击事件 在这里插入图片描述 1.2 利用cancelsTouchesInView属性进行实现 案例1:tableView的...1.3 其他方式控制事件的传递 UIview的 hitTest:withEvent: - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event...;隐藏的时候,动画从左下脚往右上角收回 (展示的时候,从上往下,即x,y 慢慢变大) 1.3 内部视图采用collectionView进行布局 1.4 view的frame 是根据当前点击的菜单按钮所在的商品...cell进行计算和坐标转换的。
领取专属 10元无门槛券
手把手带您无忧上云