而Swift除了可以面向对象编程,它还可以面向协议编程。那可不可以也用协议来解决情况呢?...(一) iOS - Swift 面向协议编程(二) 之前的文章中提到了,协议除了起规范作用,还有别一个用处,就是赋予能力。...D2D2D2) UIColor case tipColor /// 提示图(LXFEmptyDataPic) UIImage case tipImage /// 允许滚动...} return tipImg } 5、外界的使用姿势 class LXFEmptyDemoController: UIViewController { override func viewDidLoad...() { super.viewDidLoad() initUI() } } extension LXFEmptyDemoController: LXFEmptyDataSetable
() { super.viewDidLoad() let scrollView = UIScrollView() scrollView.delegate = self }...func scrollViewDidScroll(scrollView: UIScrollView) { //do something } //some code } 这一段Swift...Delegate模式是在Cocoa开发中随处可见的一种设计模式,几乎贯穿于整个Cocoa框架。...虽然Swift的委托实现跟协议息息相关,但我在这里不准备过多讨论协议的细节内容,只要知道它类似于其他语言的interface(接口)就可以了,只是Swift中的protocol不仅可以被class遵守,...Swift对函数式编程的支持非常到位,所以可以轻松编写回调函数。
网上查找资料,发现解决方案大部分是用UIScrollView实现。下方VC控制用UICollectionView。...animated: Bool) 只要将scrollPosition设置为.centeredHorizontally,即可实现该功能 左右滑动的时候,可以切换所选菜单,且下方横线需要跟着动...方法中操作 public func scrollViewDidScroll(_ scrollView: UIScrollView) { if isForbideScroll { return...初始化方法修改后记得在ScrollPageView中修改自定义VC的初始化。..."title\(i)", cid: "\(i)") arr.append(item) } return arr } 源码 demo基于swift4.0
UIScrollView 的无限滚动主要应用在图片轮播器、欢迎界面等场景。首先需要说明的是,文本所讲的是一种"笨办法",但是好理解且容易实现,在图片不多的时候用它也无妨。...2、代码实现,主要分为:添加UIScrollView,添加显示图片,添加UIPageControl,然后监听UIScrollView的滚动,根据滚动的位置来设置UIPageControl,最重要的是对于滚动到两个边缘时要特殊处理一下...:CGRectMake(0, 64, SCREEN_WIDTH, IMG_HEIGHT)]; //创建UIImageView并添加到UIScrollView中 for (int i =...的代理方法,在该方法中改变UIPageControl并且处理边缘滚动 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {...//获取当前UIScrollView的位置 CGPoint offset = [scrollView contentOffset]; //算出滚动到第几页 int currentPage
初学者第一次使用 UIScrollView 的时候,很可能会遇到 UIScrollView 滑动不了,或者明明添加了内容,却看不到的问题。...这里展示最简洁、最常态化的一种在 UIScrollView 中添加可以滑动的 UIImageView 的案例。...上下文关系:代码中的“tipView”是通过 Storyboard 拖线到代码中绑定的 IBOutlet,已经在 self.view 里面了。 ?...注意点2:现在 imageView 是 UIScrollView 的 subView,所以它的 frame 也是相对 UIScrollView 的,你想要让它和 UIScrollView 刚好一样高,就要把它的...更新: 如果你的 UIScrollView 老是在你不希望它滚动的方向的滚动,而且里面的 imageView 还有可能错位的话,在 viewDidLoad 方法中加入这句: self.automaticallyAdjustsScrollViewInsets
解决NSTimer在UIScrollView滑动时停止工作的问题 默认情况下,在滚动 tableView、UIScrollView 的时候,NSTimer会停止工作,这是因为在滚动时,RunLoop...会进入另一个Mode 模式UITrackingRunLoopMode 下,在该模式下,定时器就会停止,当不在滚动 UITextView , 定时器会重新开始。...例如:UIScrollView+ NSTimer演示滚动时,定时器停止工作 - (void)viewDidLoad { [super viewDidLoad]; UIScrollView...*scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];...性能优化 一个RunLoop对应一个线程 建议每一次启动RunLoop的时候,包装一个自动释放池,临时创建了很多对象,等着我们释放,在很多优秀的开源库中,都有这个说明 - (void)viewDidLoad
中该如何创建自定义布局。...首先,要实现 UICollectionView 只支持横向滚动,很简单,仅需要设置 UICollectionFlowLayout 布局对象中的 scrollDirection 为 horizontal...同学你讲的没错,但是当我们 Cell 的 width 加上边距等如果不占满 UICollectionView,那么就会出现一个问题,虽然你实现了分页效果,但是你的 Cell 在滚动的过程中是不会居中的....override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading...extension CoverFlowViewController: UICollectionViewDelegate{ func scrollViewDidScroll(_ scrollView: UIScrollView
UITextView 简介 (1) UITextView 继承结构 UITextView 继承结构简介 : -- 基类 : 继承了 UIScrollView : UIView 控件, 默认这些控件都自带滚动条...: UITextView 继承了 UIScrollView, 有 UIScrollView 的各种功能特性; 2....UIScrollView 属性简介 (1) UIScrollView 简介 UIScrollView 简介 : -- 显示内容多 : 可滚动控件, 可以使用手指拖动控件中的内容, 在其中可以显示多个屏幕的内容...Scroll View 时, 显示水平滚动条; -- Shows Vertical Indicator : 垂直滚动 ScrollView 时, 显示垂直滚动条; (4) Bounce 属性 Bounce...UIScrollView 控件, 如果没有勾选, 用户碰触该控件立即调用 touchesShouldBegin 方法处理滚动; -- Cancellabel Content Touches : 勾选后
//滚动视图对象 @property (retain, nonatomic) UIScrollView *scrollView; //视图中小圆点...property (retain, nonatomic) NSMutableArray *images; @end /* 何问起 hovertree.com */ 在程序中导入图片,在.m文件中的代码实现...: - (void)viewDidLoad { [super viewDidLoad]; //初始化scrollView self.scrollView = [[...UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 345)]; //初始化pageControl self.pageControl...UIScrollViewDelegate--------- //实现协议UIScrollViewDelegate的方法,必须实现的 - (void)scrollViewDidEndDecelerating:(UIScrollView
前言 本文源自实际开发中的需求,核心的要求有几个: 1、多个UITableview要支持左右滑动; 2、点击Tab也要有UITableview的滑动切换效果; 3、每个UITableview单独的下拉刷新和上拉加载...contentSize self.mContainerScrollView.contentSize = CGSizeMake(self.view.width * 4, 0); // 写0,关闭vertical的滚动...解决办法:contentSize的高度设置为0,关闭vertical的滚动。...contentSize = CGSizeMake(self.view.width * 4, 0); // 写0,关闭vertical的滚动 viewWithTag 具有传递性 代码中存在5个UIScrollView...但是实际开发中,在VC的viewDidLoad方法中将其设置为NO,并没有生效,UIScrollView依旧下滑了20pt。
子 View 的顺序和子 View 返回的数组中的位置有关(storyboard 中左侧的树形结构图中的先后顺序)。...内容可滚动。...UIScrollView、UIPageControl UIScrollView 滚动控件 三个重要属性 contentSize:UIScrollView 滚动的范围。...contentOffset:UIScrollView 当前显示区域的顶点相对于内容左上角的偏移量(滚动到了什么位置)。...override func viewDidLoad() { super.viewDidLoad() // 设置UIScrollView setupBanner
关键词:#UIScrollView UIScrollView 上显示内容的区域被称为 contentView。...比如具体 item 的尺寸大小, item 之间的间距,header 和 footer 的大小和间距,以及 UICollectionView 的滚动方向。...最简单的做法是直接在 viewDidLoad 里设置 tableView 的 isEditing 属性为 true。...9.说说实现预加载的方法 关键词:#网络传输 #无限滚动 #Threshold 在实际开发中,列表经常需要随着滑动而不停的展示新的内容。在滑动到一定程度后,我们就需要发送网络请求,以获得新的数据。...这就是无限滚动列表。
比如一些界面中有父视图的尺寸由子视图的尺寸来确定的;还比如UIScrollView中为了能实现滚动需要根据添加到里面的子视图来调整contentSize的尺寸;又比如某些UITableViewCell中的高度是动态的...2.UIScrollView的滚动 对于UIScrollView来说需要设置contentSize来实现滚动的能力。...为此当UIScrollView要和AutoLayout进行结合使用并实现滚动能力的话就不能直接将所有子视图都添加到UIScrollView中去, 而是需要中间建立一个容器视图,首先将容器视图添加到UIScrollView...如果不需要水平滚动则改为将容器视图的宽度等于UIScrollView视图的宽度。通过这样的设置后UIScrollView视图的contentSize将得到自动的计算。...2.UIScrollView的滚动 MyLayout&TangramKit对于处理和UIScrollView进行结合时进行特殊处理,当将一个布局视图添加到滚动视图时,布局系统内部会负责处理滚动视图的contentSize
Swift-MVVM 简单演练(一) Swift-MVVM 简单演练(二) Swift-MVVM 简单演练(四) 优化一些小细节 设置SVProgressHUD最小提示时间 在我们用SVProgressHUD...将询问发送通知授权的代码也抽取出来 在swift中extension是可以无限多个写的,我们如果能将更多的零碎的方法抽取出来,放到extension中去。代码会清晰很多,也会方便管理很多。...func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver...我选择在Button的Extension中搞定这个。...是为了处理`scrollView`滚动超过屏幕一半的时候,`pageControl`也滚动到下一页 let page = Int(scrollView.contentOffset.x /
interface PageViewController : GFPageViewController @end @implementation PageViewController - (void)viewDidLoad...{ [super viewDidLoad]; [self configureContentView]; } - (void)configureContentView { NSArray...淘抢购页面.png 可以发现,只要滚动到了中间红色那块区域的文字,颜色都会变成白色。。。 脑洞了很久也没有想到思路!后来网上查找,从一篇文章中得到了灵感 视错觉结合UI。...; #pragma makr - 同步滚动 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { UICollectionView *...我的初衷其实就是把这个滚动菜单封装出来,后来发现使用这个菜单的大部分情况都是和多个子控制器一起使用,所以就再进行了一步封装,把控制器的逻辑都封装到了GFPageViewController控制器中。
touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view; //29.它开始发送跟踪邮件的内容视图后动视图调用此方法...setZoomScale:(CGFloat)scale animated:(BOOL)animated NS_AVAILABLE_IOS(3_0); //34.缩小到特定区域的内容,所以它是在接收器中可见...:(UIScrollView *)scrollView; //54.滚动顶部时候调用该方法 - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView...; @end UIScrollView的常见属性 @property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动的位置 (其实就是内容左上角与...:2.0 target:self selector:@selector(nextPage:) userInfo:@"123" repeats:YES]; // 修改NSTimer在NSRunLoop中的模式
Scrollable-GraphView.swift - 灵动感十足的自适应、可定制滚动曲(折)线图表库。...HBHorizontalTableView - swift,TableView 横向滚动小示例(仿照 AppStore 应用展示)。...HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。 。...LLNoDataView - 超简单的空数据提示通用View支持UIScrollView、UITableView、UICollectionView、UIWebView。...实现教程 jingDongFenLei - 简单仿写京东分类中的多级分类页面。
1 系统自带方式 1.1 添加图片 1,准备图片资源,放入工程中,即可,默认时间为1s iOS设备现在有三种不同的分辨率:iPhone 320x480、iPhone 4 640x960...interface WelcomeViewController () @end @implementation WelcomeViewController - (void)viewDidLoad...{ [super viewDidLoad]; [self setupScrollView]; [self setupPageControl]; } //创建程序第一次加载要显示的视图...=self; [self.view addSubview:scrollView]; //关闭水平方向上的滚动条 scrollView.showsHorizontalScrollIndicator...{ [super viewDidLoad]; [self initSubViews]; // Doany additional setup after loading the view
; } @end 上面这段代码中TimerViewController和NSTimer构成了循环引用,退出TimerViewController页面,TimerViewController 和 NSTimer...RunLoop模式 当调用scheduledTimerWithTimeInterval方法时,Timer会默认被加入到当前线程的RunLoop中,模式为NSDefaultRunLoopMode。...如果当前线程是主线程(UI线程),比如UIScrollView的滚动操作,RunLoop模式自动会被切换成NSEventTrackingRunLoopMode,在这个过程中,默认的NSDefaultRunLoopMode...模式中注册的事件不会被执行,也就是说此时调用scheduledTimerWithTimeInterval添加到RunLoop中的Timer不会被执行。...如果要让主线程中的Timer在页面滚动时也能被执行到,应使用NSRunLoopCommonModes
OC检测代码 if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) { } 复制代码 swift...因此在viewDidload中根据SafeArea设置界面会有问题。...{ [super viewDidLoad]; } - (void)testSafeArea { UIEdgeInsets safeAreaInsets = sgm_safeAreaInset...tableView内容与边缘距离的是adjustedContentInset,所以需要设置UIScrollView的contentInsetAdjustmentBehavior属性。...是UIScrollView的一个属性. 3.8、UserNotifications(用户通知) iOS 10所有相关通知被统一到了UserNotifications.framework框架中。
领取专属 10元无门槛券
手把手带您无忧上云