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

用AutoLayout实现分页滚动

滚动视图分页 UIScrollView的pagingEnabled属性用于控制是否按分页进行滚动。在一些应用中会应用到这一个特性,最典型的就是手机桌面的应用图标列表。...这些界面中往往每一页功能都比较独立,系统也提供了UIPageViewController来实现这种分页滚动的功能。 实现分页滚动的UI实现一般是最外层一个UIScrollView。...然后UIScrollView里面是一个总体的容器视图containerView。...UILabel *label = [UILabel new]; label.textAlignment = NSTextAlignmentCenter; label.backgroundColor...分页图标效果图 横竖屏切换 对于带有分页功能的滚动视图来说,当需要支持横竖屏时就有可能会出现横竖屏切换时界面停留在两个页面中间而不是按页进行滚动的效果。

1.9K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    记一次 contentInsetAdjustmentBehavior 引发的bug

    1 背景 项目中使用到了UILable来展示相关的文本内容,但内容的大小不确定,有可能会超过屏幕的大小,因此需要在外层嵌套一个UIScrollView来保证内容可以被完全展现给用户,在UILabel确定相关的高度后...,再通过设置UIScrollView的contentSize 来限定UIScrollView的滚动范围,保证全部内容可被浏览到 2 实现代码 2.1 伪代码 class CustomView: UIView...{ let scrollView: UIScrollView let titleLabel: UILabel = UILabel() ..........y值从30逐渐缩小于10,但测试发现不管怎样改这个初始的y值,实现的效果其实都差不多,根本没有办法缩小其距离顶部的距离。...,但排查到问题实际花费了我一天的时间,在学习iOS的道路上还任重道远

    82420

    Material Design —卡片(Cards)

    它们也非常适合展示尺寸或支持操作变化的元素,例如带有可变长度标题的照片。 ? 卡片集合是共面的,或同一平面上的卡片布局。 ?...按钮或评论 ·在网格列表中,但需要显示更多内容来补充图像 ?...左:网格tile以干净轻量方式展示图片库    右:卡片不适合展示同类内容 ---- 内容 卡片为联系更紧密的信息和视图提供上下文和入口点,其内容和数量可能会有很大差异。...背景图像 当文字放置在纯色背景上时,文字清晰度最高,且文字对比度足够高。 放置在图像背景上的文本应该保留文本的易读性。 ? 左:不同布局的卡片    右:排版方式能突出重点内容 ?...但当能改善内容布局和易读性时,则可以将其放置在右下角。 注意不要让溢出菜单负荷的操作太多。 ? 其他操作 强烈建议不要在文本内容中使用内联链接。

    4.3K100

    iOS layout相关方法

    2.addSubview会触发layoutSubviews 3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化 4.滚动UIScrollView会触发...setNeedsLayout 标记为需要重新布局,不立即刷新,但layoutSubviews一定会被调用配合layoutIfNeeded立即更新 layoutIfNeeded 如果有需要刷新的标记,立即调用...假设有个UILabel 添加它距离左边的距离约束为left的constraint 值为 10 现在我们想让它距左边的距离以动画形式改变为100 如果这么做 UIView.animateWithDuration...receiver当前的size,返回一个适合的size sizeToFit可以被手动直接调用 sizeToFit和sizeThatFits方法都没有递归,对subviews也不负责,只负责自己 假设 let...不实际调整视图。 sizeToFit 会根据sizeThatFits返回的最佳大小进行调整视图。

    1.1K10

    你不知道的Mac屏幕显示图像

    ,比如视图的创建、布局计算、图片解码、文本绘制等。...如果你对文本显示没有特殊要求,可以参考下 UILabel 内部的实现方式:用 [NSAttributedString boundingRectWithSize:options:context:] 来计算文本宽高...常见的文本控件 (UILabel、UITextView 等),其排版和绘制都是在主线程进行的,当显示大量文本时,CPU 的压力会非常大。...尽管这实现起来非常麻烦,但其带来的优势也非常大,CoreText 对象创建好后,能直接获取文本的宽高等信息,避免了多次计算(调整 UILabel 大小时算一遍、UILabel 绘制时内部再算一遍);CoreText...目前常见的网络图片库都自带这个功能。 图像的绘制 图像的绘制通常是指用那些以 CG 开头的方法把图像绘制到画布中,然后从画布创建图片并显示这样一个过程。

    2K70

    iOS 优化界面流畅的技巧

    如果你对文本显示没有特殊要求,可以参考下 UILabel 内部的实现方式: 用 [NSAttributedString boundingRectWithSize:options:context:]...常见的文本控件 (UILabel、UITextView 等),其排版和绘制都是在主线程进行的,当显示大量文本时,CPU 的压力会非常大。...尽管这实现起来非常麻烦,但其带来的优势也非常大,CoreText 对象创建好后,能直接获取文本的宽高等信息,避免了多次计算(调整 UILabel 大小时算一遍、UILabel 绘制时内部再算一遍);CoreText...目前常见的网络图片库都自带这个功能。 图像的绘制 图像的绘制通常是指用那些以 CG 开头的方法把图像绘制到画布中,然后从画布创建图片并显示这样一个过程。...为了达到最高性能,你可能需要牺牲一些开发速度,不要用 Autolayout 等技术,少用 UILabel 等文本控件。

    1.5K10

    在Swift中创建可缩放的图像视图

    在你的iOS应用中添加捏合变焦功能的分步指南 照片:Markus WinkleronUnsplash 没有什么比完美的图片更能让你的应用程序熠熠生辉,但如果你想让你的应用程序用户真正参与并与图片互动呢...对于我们的可缩放图像视图,我们要做的是让它成为一个可缩放的视图。对于我们的可缩放图像视图,我们将利用UIScrollView的缩放和平移功能。...medium.com/media/afad3… 在commonInit()中,我们将图像视图居中,并设置它的高度和宽度,而不是把它固定在父视图上。这样一来,滚动视图就会从图像视图中获得其内容大小。...我们有了一个UIIm我们已经有了一个嵌套在UIScrollView中的UIImageView,一切都应该是可滚动和可平移的。但是我们如何设置我们的图像呢?...试试平移和缩放(如果你使用的是模拟器,按住 "option "键)--你会对你的图像有一个全新的视角 以编程方式初始化视图 在使用界面生成器时,这很好--但如果你想以编程方式初始化视图呢?

    5.7K20

    TableView优化之快速滑动下的忽略加载

    普通的UIView绘制圆角时并不需要maskToBounds属性。也就是普通的视图圆角对卡顿没有影响。 既然有普通就有特殊:UIImageView和UILabel以及我还没有发现的=。...---- 3.CoreText绘制文本 首先,复杂的层级关系同样会给cell在绘制时添加很大的负担,这点是毋庸置疑的,所以VVebo的作者选择了将一些相对重复性很大的视图选择使用CoreText和CoreGraphic...技术直接绘制在一个视图上,这样就减少了视图的层级,为流畅性又添了一份可能。...CoreText绘制文本的和图片的技术你可以在老司机的CoreText实现图文混排系列中得到详细的实现方法,想看的去看吧。...映射所有代理 version 1.1.1 添加自适应模式最小行高限制及最大行高设置 添加数据源的容错机制,但这并不是你故意写错的理由=。

    1.7K33

    从 0 到 1 搭建技术中台之 iOS 可视化埋点实践

    页面所属控制器存在自定义的父控制器 例如:一个控制器包含了若干子控制器,且通过 UIScrollView 分页的方式呈现各子控制器的视图。...但考虑到 App 交互的多样性和现实成本,这里仅讨论支持点击操作的元素。 通常,元素标识由三部分组成 元素在页面视图树中的路径 路径由视图树根节点开始,到该元素节点的父节点为止。...元素的内容 元素的内容可能是文本、图片、其他包含图片或文字的子元素组合。类似于 UILabel、UIImageView 这样的元素,直接获取其文本信息或图片 URL 即可。...元素索引的添加时机 建议只从视图控制器所在的视图开始添加元素索引。...这其实和上述场景类似,需要在所有可能的用户场景下分别进行圈选配置操作。 某些元素的父视图层级固定,只是索引会发生变化,例如导航栏右上角的下拉菜单列表,列表中的元素顺序可能会变化,但都限定在菜单容器内。

    1.1K20

    《Motion Design for iOS》(十五)

    UIView是用来构建你的界面的UIKit Framework中基本的界面对象。每个视图都可能伴随着文本、形状或图片绘制。...比如说,iOS app中的状态栏是一个长且瘦的视图,处于屏幕的顶端,并且状态栏目中的每个物体(时间、电池指示器、信号强度指示器等等)都是状态栏视图中的其它视图。...这些是为某些功能或特性特定的特殊的UIView对象。包括作为界面按钮的UIButton、用来显示图片的UIImageView、显示文本的UILabel和显示列表的UITableView。...运营商图像视图(苹果控制) wifi信号强度视图(苹果控制) 当前时间视图(苹果控制) 电池等级视图(苹果控制) “汉堡包”菜单按钮 标题栏中的标题标签 改变子板的按钮 一个UITableViewCell...视图,用来包含UITableView中一行的元素 UILabel中的帖子标题 评论数量UIButton,由一个评论气泡图和评论的数量组成 显示帖子URL的UILable UILabel中显示帖子的点值和子板

    85640

    iOS开发学习路线

    结论 iOS中级开发说白了,就是你学会了基本的UI界面搭建,上架,沉淀一段时间,你觉得自己还适合这门行业,还适合,还能接受 这个所谓的iOS开发工程师的行业.你就可以说是一名中级iOS开发....这个沉淀时间 大约在1年的实际工作中,就可以完成. 如果你觉得这门行业不适合你,请仔细结合自身情况,是否转另一门计算机语言,还是彻底转行....TZImagePickerController Hyphenate_CN 基础UI控件 UILabel 标题栏 UIButton 按钮 UIImageView 图片视图 UITextField...文本输入框 UITextView 文本展示视图 UIProgressView 进度条 UISlider 滑动开关 UIGesture 手势 UIActivityIndicator 菊花控件...UIAlertView(iOS8废除) 警告框 UIActionSheet(iOS8废除) 操作表单 UIAlertController(iOS8出现) 警告视图控制器 UIScrollView 滚动视图

    1.9K60

    iOS 性能优化

    如果你对文本显示没有特殊要求,可以参考下 UILabel 内部的实现方式:用 [NSAttributedString boundingRectWithSize:options:context:] 来计算文本宽高...常见的文本控件 (UILabel、UITextView 等),其排版和绘制都是在主线程进行的,当显示大量文本时,CPU 的压力会非常大。...尽管这实现起来非常麻烦,但其带来的优势也非常大,CoreText 对象创建好后,能直接获取文本的宽高等信息,避免了多次计算(调整 UILabel 大小时算一遍、UILabel 绘制时内部再算一遍);CoreText...目前常见的网络图片库都自带这个功能。 图像的绘制 图像的绘制通常是指用那些以 CG 开头的方法把图像绘制到画布中,然后从画布创建图片并显示这样一个过程。...为了达到最高性能,你可能需要牺牲一些开发速度,不要用 Autolayout 等技术,少用 UILabel 等文本控件。

    2.9K20

    iOS面试题-UI篇

    当你调用 setNeedsDisplay 方法时, UIKit 将会把当前图层标记为dirty,但还是会显示原来的内容,直到下一次的视图渲染周期,才会将标记为 dirty 的图层重新建立Core Graphics...([[UIDevice currentDevice].systemVersion doubleValue]>=7.0) 如何渲染UILabel的文字?...通过NSAttributedString/NSMutableAttributedString(富文本) UIScrollView的contentSize能否在viewDidLoad中设置?...A的view的部分区域中显示 假设控制器B的view中有一个UIScrollView这样一个子控件 如果此时在控制器B的viewDidLoad中设置UIScrollView的contentSize的话会导致不准确的问题...如果当前view是控制器的view,那么就传递给控制器 如果控制器不存在,则将其传递给它的父控件 在视图层次结构的最顶层视图也不能处理接收到的事件或消息,则将事件或消息传递给UIWindow对象进行处理

    2K21

    【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    : 在 Text 属性下面有一个文本框, 在这个文本框中输入要显示的文本内容; (2) Color 属性 Color 属性 : 控制 UILabel 中的文本颜色; (3) Font 属性 Font...是否可用, 如果没有勾选, 该 Label 不可用, 处于淡灰色; -- Highlighted : 控制 UILabel 是否处于高亮状态, 勾选该控件后处于高亮状态, 控件中的文本以高亮显示; (...7) Line Break 属性 Line Break 属性 :  -- 作用 : 该属性对 UILabel 内的文本进行截断, UILabel 中的字符串比较多, UILabel 无法容纳这些字符串...Size : 设置最小的字号大小, 设置的值是字体大小; -- Tighten Letter Spacing : 勾选该复选框 会自动压缩字符串中的空白, 保证 UILabel 能容纳这些文本中的内容...; (9) Highlighted 属性 Highlighted 属性 :  -- 作用 : 为 UILabel 中的文本设置高亮显示, 前提 Behavior 属性的 Highlighted 属性勾选

    5K30

    VVeboTableView 源码解析

    1.3 减少cell内部控件的层级 我们先来看一下一个带有原贴的转发贴的布局: ? 布局 可能有小伙伴会将上中下这三个部分各自封装成一个view,再通过每个view来管理各自的子view。...- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset...alpha:1] set]; //通过rect填充背景颜色 CGContextFillRect(context, rect); 讲到现在,就剩下了关于文字的绘制,包括脱离了UILabel的纯文本的绘制和...UILabel里文本的绘制,我们先说一下关于简单的纯NSString的绘制: 3.4 异步绘制NSString 作者通过传入字符串的字体,颜色和行高,以及位置就实现了纯文本的绘制: //绘制名字 [_...3.5 异步绘制UILabel 而对于UILabel里面的绘制,作者也采取了类似的方法: 首先看一下在cell实现文件里,关于绘制label文字方法的调用: //将文本内容绘制到图片上,也是异步绘制 -

    1.2K10
    领券