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

UIScrollView一步步实现1 简介1.1 工作原理1.2 UIScrollView常见几个重要控件1.3 UIScrollView常见重要属性1.4 手工代码实现拖动2 三个重要属性

移动设备屏幕大小是极其有限,因此直接展示在用户眼前内容也相当有限。当展示内容较多,超出一个屏幕,用户可通过滚动手势来查看屏幕以外内容。...UIScrollView是一个能够滚动视图控件,可以用来展示大量内容,并且可以通过滚动查看所有的内容 1.1 工作原理 缩放时候,原理是操作被缩放控件transform数值。...= [[UIScrollView alloc]initWithFrame:self.view.bounds]; // 创建UIImageView UIImageView *imageView...= [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"002"]]; _imageView = imageView; /...和普通内边距作用相反,不是让内容向里面缩进。是不改变原有的contentSize基础上,让scrollView内容向四周多滚动一些。

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

iOS面试题-UI篇

可以响应用户事件,Xcode6之后可以方便通过视图调试功能查看图层之间关系 UIView是iOS系统界面元素基础,所有的界面元素都继承自它。...,并写入磁盘 整个获取图片过程都是子线程执行,获取到图片后回到主线程将图片显示出来 设计个简单图片内存缓存器 类似上面SDWebImage实现原理即可 一定要有移除策略:释放数据模型对象 控制器生命周期...可以通过纯代码或者xib方式来封装子控件 建立一个跟view相关模型,然后将模型数据传给view,通过模型上数据给view子控件赋值 /** * 纯代码初始化控件一定会走这个方法 */...能 因为UIScrollView内容尺寸是根据其内部内容来决定,所以是可以viewDidLoad设置 补充:(这仅仅是一种特殊情况) 前提,控制器B是控制器A一个子控制器,且控制器B内容只控制器...Aview部分区域中显示 假设控制器Bview中有一个UIScrollView这样一个子控件 如果此时控制器BviewDidLoad设置UIScrollViewcontentSize的话会导致不准确问题

1.9K21

UIScrollView 和 UIPageControl 实现启动滑动图

更多关于NSUserDefaults介绍请看:NSUserDefaults 简介 你可以选择AppDelegate.mdidFinishLaunchingWithOptions 方法或者“初始界面...UIScrollView 和 UIPageControl 为启动滑动图做准备 UIScrollView : 带有滑动效果,在上面加入UIImageView再设置代理后,可以实现翻页显示图片效果 涉及相关属性...imageView UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",i+1]];...和 _scrollView 显示 同一个页面 UIPageControl *pageConteol = [[UIPageControl alloc] initWithFrame:CGRectMake...,下面给出代码是一个简单动画效果: 代码如下: -(void)scrollViewDisappear{ //拿到 view UIScrollView 和 UIPageControl

54210

iOS开发之UIScrollView无限滚动

UIScrollView 无限滚动主要应用在图片轮播器、欢迎界面等场景。首先需要说明是,文本所讲的是一种"笨办法",但是好理解且容易实现,图片不多时候用它也无妨。...它原理是在要显示图片前后各加一张图片即在第一张图片之前放最后一张图片,最后一张图片之后放第一张图片,然后滚动到边缘时候,巧妙过渡一下就可以"瞒天过海","以假乱真"造成无限滚动假象。...2、代码实现,主要分为:添加UIScrollView,添加显示图片,添加UIPageControl,然后监听UIScrollView滚动,根据滚动位置来设置UIPageControl,最重要是对于滚动到两个边缘要特殊处理一下...(0, 64, SCREEN_WIDTH, IMG_HEIGHT)]; //创建UIImageView并添加到UIScrollView for (int i = 0; i< MAX_SIZE...,该方法改变UIPageControl并且处理边缘滚动 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { //

1.6K100

iOS14开发-UIView

子 View 顺序和子 View 返回数组位置有关(storyboard 左侧树形结构图中先后顺序)。...直接在 storyboard 布局,不需要使用数据源方法,但如果需要使用到代理方法,仍然需要在控制器实现相应方法。 适用于基本不需要动态修改、布局固定页面,个人中心、设置等。...UITableViewDiffableDataSource iOS 13 引入了新 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView...一般用于自适应大小,会根据自动布局决定元素大小。...NSCollectionLayoutAnchor Item ,可能需要给其加上小红点或者未读消息数等附加视图, UICollectionViewCompositionalLayout ,可以通过

11.7K10

iOS-自定义View封装

开发过程,自定义控件使用频率非常高,接下来简单对自定义控件做个小结 View封装 如果一个view内部子控件比较多,一般会考虑自定义一个view,把它内部子控件创建封装起来,不让外界看见 外界可以传入对应数据模型给...view,view拿到模型数据后给内部子控件设置对应数据 代码封装 新建一个继承UIViewinitWithFrame:方法添加子控件(也可以使用懒加载) 重写模型属性set方法,set方法设置模型属性到子控件上...layoutSubviews方法设置子控件frame(一定要调用[super layoutSubviews]) 关于layoutSubviews以下情况下会被调用: - init初始化不会触发...//当控件本身尺寸发送改变,系统会自动调用这个方法 - (void)layoutSubviews{ [super layoutSubviews]; CGFloat personW...调整子控件frame,使用纯代码比xib更灵活,子控件可以layoutSubviews方法灵活调整自己frame。

20010

iOS内存优化

如果要在UIImageView显示一个来自bundle图片,你应保证图片大小和UIImageView大小相同。...在运行缩放图片是很耗费资源,特别是UIImageView嵌套在UIScrollView情况下。...容易被忽略内存优化如下: 1.View渲染是很吃CPU性能和内存,所以更多View渲染是特别容易消化内存和cpu,特别是我们再使用UIScrollView,多个Subview 我们可以适当...2.懒加载,也称延迟加载,说通俗一点,就是开发,当程序需要利用资源。...View释放后,1color不会跟着释放,而是一直存在内存;2color会跟着释放掉,当然再次生成color就会再次申请内存.UIView上再添加一个UIImageView显示图片作为UIView

91064

Swift| 基础语法(五)

} Swift,创建tableViewCell方法可以分为两种创建tableView时候注册和需要使用时手动创建。先聊聊创建tableView时候直接注册cell: myTb?....register(MyNewTableViewCell.self, forCellReuseIdentifier: "myCell") 当注册了Cell之后,没有可重用Cell时会自动创建,并且不能在需要手动创建...可以自定义cell处理点击状态下显示 var label1 :UILabel? var label2 :UILabel?...(named: "") // // 4 选中背景图片 // tabbarController.tabBar.selectionIndicatorImage = UIImage...因为Swift,所有对象构造器默认都是public,所以需要重写你init让其成为私有的。 这样就保证像如下代码编译报错,不能通过。 六、从相册选择照片或者拍照 ?

2K30

iOS复习中有关SDWebImage可能知识点总结(1)

SDImageCache初始时候会注册一些消息通知,在内存警告或退到后台时候清理内存图片缓存,应用结束时候清理过期图片 19....1.2 API参数枚举类型 1.2.1 SDWebImageOptions:图片下载策略 例如,SD为UIImageView提供UIImageView+WebCache.m分类,有这些API: -...,这样下载延迟到UIScrollView减速 SDWebImageLowPriority = 1 << 1, // 该标记禁用磁盘缓存 SDWebImageCacheMemoryOnly...移出屏幕后cellUIImageView继续下载问题?...它本意是不让网络相关操作阻塞到主线程,改正:网络相关操作子线程,主线程runloopmode切换并不会影响子线程,但是它这样设计的确有这样效果:屏幕滑动,暂停数据下载任务,改正:滑动屏幕并不会暂停数据下载

83120

iOS小技能:查看大图浏览器(图片支持滑动切换)

,比如查看风险商户证明材料,图片支持滑动切换 文章:https://blog.csdn.net/z929118967/article/details/115077471 主要功能:进入查看器之后,可左右滑动查看上.../下张,并支持下滑视图退出查看器 在这里插入图片描述 I 用法 /** 初始查看大图controller @param imageUrls 所有大图数组 @param originImageViews...*/ @property(nonatomic,copy)NSString * urlStr; /** 小图原始imageView,用于加载大图占位图片 */ @property(nonatomic...*)addShadowImageViewWithFrame:(CGRect)frame image:(UIImage *)image { UIImageView * imageView = [...; NSString *string = [editReturnedModeltmparr componentsJoinedByString:@","];// iOS 将数组元素用符号拼接字符串方法

1.1K30

iOSGIF动画效果实现

(3)获取ImageIO输出数据:UIImage。 (4)将获取到UIImage数据存储为JPG或者PNG格式保存到本地。 整个GIF图片分解过程,ImageIO是处理过程核心部分。...2 GIF图片分解代码实现 正式分析代码之前,先来看看整个工程文件结构,如图。 源文件使用是plane.gif文件。...如果大家想查看最终写入效果,可以最后一行添加print信息,将文件写入路径打印出来,观察图像写入是否成功。...根据上图,Mac系统下,利用系统图片查看工具来查看GIF图片分帧结果,对比图中内容,可以看出GIF图片分解结果是正确。...第10行将初始化加载67张图片添加到UIImageView实例animationImages上,相当于设置UIImageView内容。第11行设置UIImageView图片动画播放周期。

1.2K20

【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

UIViewController 创建完成 , 并开始加载到内存 , 在这个时刻执行该 viewDidLoad 方法 //一般情况下 是 该方法 执行 初始化数据 , 创建控件 等操作 ; -...:path2]; 4.调试查看字典内容 : 字典 初始化 位置 打断点 , 查看初始内容 ; ---- ( 3 ) Property List 多种类型 数据 设置 获取 ( ① 设置 Root...一般情况下 程序 运行起来 , plist 是不会改变 , 因此 只需要加载一次即可 ; 根据 没有值 时候才去 初始化 原则 , 只有当属性为 空 , 才执行初始化操作 ; 4.代码 : //...属性为 空 才开始从 list 初始化 数据 if(_pics == nil){ // 1....图片 , 图片会在 内存 驻留 , 只有需要长期保持 图片 , UI 界面的 经常显示 各种背景 图标 等 , 使用该方式加载 ; UIImage *image = [UIImage imageNamed

3.5K40

最新版SDWebImage使用

github托管地址https://github.com/rs/SDWebImage 第二步,需要地方导入头文件 #import "UIImageView+WebCache.h" 第三步,调用sd_setImageWithURL...:  completed: //用block 可以图片加载完成之后做些事情 [self.image2 sd_setImageWithURL:imagePath2 completed:^(UIImage...如果内存缓存没有,生成 NSInvocationOperation 添加到队列开始从硬盘查找图片是否已经缓存。 根据 URLKey 硬盘缓存目录下尝试读取图片文件。...SDImageCache 初始时候会注册一些消息通知,在内存警告或退到后台时候清理内存图片缓存,应用结束时候清理过期图片。...从上面流程可以看出,当你调用setImageWithURL:方法时候,他会自动去给你干这么多事,当你需要在某一具体时刻做事情时候,你可以覆盖这些方法。

90560

最新版SDWebImage使用

github托管地址https://github.com/rs/SDWebImage 第二步,需要地方导入头文件 #import "UIImageView+WebCache.h" 第三步,调用sd_setImageWithURL...:  completed: //用block 可以图片加载完成之后做些事情 [self.image2 sd_setImageWithURL:imagePath2 completed:^(UIImage...如果内存缓存没有,生成 NSInvocationOperation 添加到队列开始从硬盘查找图片是否已经缓存。 根据 URLKey 硬盘缓存目录下尝试读取图片文件。...SDImageCache 初始时候会注册一些消息通知,在内存警告或退到后台时候清理内存图片缓存,应用结束时候清理过期图片。...从上面流程可以看出,当你调用setImageWithURL:方法时候,他会自动去给你干这么多事,当你需要在某一具体时刻做事情时候,你可以覆盖这些方法。

1.3K30

实践-小效果 Ⅰ

的话,代理再改变  self.HeadImgView frame  就会出现下拉上面出现空白情况。...2.导航条上放视图,点击字体变大: 往导航条上加试图关键点:    self.navigationItem.titleView= view;(这个view 是 UIScrollView...:alertControlleranimated:YEScompletion:nil]; } [self.collection reloadData]; } 7.类似滴滴打车软件左边侧滑动态隐藏...这时view controller对status bar设置优先级高于application设置,用下面的方式隐藏status bar: 1、view controller调用setNeedsStatusBarAppearanceUpdate...ios-sim 是一个可以命令控制iOS模拟器工具。利用这个命令,我们可以启动一个模拟器,安装app,启动app,查询iOS SDK。它可以使我们像自动化测试一样不用打开Xcode。

1.1K30

iOS开发之三个Button实现图片无限轮播(参考手机淘宝,Swift版)

下方整个页面是使用UICollectionView来实现了,下方幻灯片所在UIScrollView就放在UICollectionView上一个Cell上。...当然这不是我们今天重点,我们将目光转移到左边红框数学层级上。可以明显看出UIScrollView上贴了三个UIButton,而每个UIButton上又贴了一个UIImageView。...比如用户滑动定时器挂起和唤醒,用户左右滑动方向记录,便于自动轮播方向与用户上次滑动方向一致,异步加载网络请求图片,加载后显示相应Button上,通过Closure回调出用户点击事件可当前图片索引信息等等需要注意细节...调用组件,传入给组件参数是一个数组,下方代码就是我们初始化imagesNameArray函数。...加载完图片后,将ImagesNameArray相应URL替换成相应UIImage对象,然后主线程更新UI显示相应图片,具体代码如下所示。 ?

2.1K80

iOS 性能优化常用技巧总结import

自动为你管理retain和release过程,所以你就不必去手动干预了。忘掉代码段结尾release简直像记得吃饭一样简单。而ARC会自动底层为你做这些工作。...想要使用reuseIdentifiers的话,一个table view添加一个新celldata source object添加这个方法: staticNSString *CellIdentifier...Apple相关文档记述是: 当你加载一个引用了图片或者声音资源nib,nib加载代码会把图片和声音文件写进内存。...Image Views调整图片大小 如果要在UIImageView显示一个来自bundle图片,你应保证图片大小和UIImageView大小相同。...在运行缩放图片是很耗费资源,特别是UIImageView嵌套在UIScrollView情况下。

1.1K70

小问题记录

,不要写全路径,因为软件更新或者重新安装沙盒路径会变 更新流程是这样:更新,先在新路径里安装新程序,然后把旧程序文件夹里配置文件之类文件拷贝到新路径里去,然后删除旧程序 所以,如果数据库里保存是绝对路径...、调用这个方法view2、view2所有子view都会调用layoutSubviews setFrame:只有view设置frame且尺寸参数有不同情况下调用 滑动UIScrollView,scrollView...NSForegroundColorAttributeName:textColor, NSParagraphStyleAttributeName:textStyle}]; 设置粗体文字 首先可以上这个网站:http://iosfonts.com/查看自己要用字体是否支持粗体...& UIImageView 用纯色生成一个UIImage reference @implementation UIButton (ButtonMagic) - (void)setBackgroundColor...; ---- 其他 Cocoapods pod install 太慢 reference pod install --verbose --no-repo-update 标注代码段 reference OC

3.4K21
领券