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

【热点盘点】iOS 8增强的自动布局功能

自动布局是iOS6开始引进的新功能,而iOS 8则在原有自动布局的基础上增加了SizeClass的概念,从而增强了自动布局功能。 自动布局的总体思路归纳起来就是四个字:相对布局。...自动布局则充分利用了UI控件之间的父子关系、兄弟关系,自动布局可控制子节点控件的左边界、右边界、上边界、下边界与父容器的左边界、右边界、上边界、下边界对齐或保持指定距离,与此同时,还可设置子节点控件的宽度占父容器宽度多大比例...这种方式通常用于添加两个UI控件之间的相对布局关系。 在按住键盘上control键的同时,在Interface Builder中从一个UI控件拖向另一个具有兄弟关系的UI控件即可看到蓝线。 ?...提示:如果在两个具有父子关系的UI控件之间拖出垂直的蓝线,那么Xcode弹出的菜单将只能设置两个UI控件在垂直方向上的布局约束;如果在两个具有父子关系的UI控件之间拖出水平的蓝线,那么Xcode弹出的菜单将只能设置两个...,InterfaceBuilder将会在Dock栏的右上角以黄色警告提醒用户;如果界面设计者给出了两个甚至多个互相矛盾的大小、位置约束,就产生了布局错误,在编译时就会提示错误。

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

    用AutoLayout实现分页滚动

    每个页视图中在添加各自的条目视图。整体效果图如下: ? 分页滚动UI布局 AutoLayout实现分页滚动的方法 根据上面的UI结构这里用AutoLayout的代码来实现水平分页的滚动。...这里的约束设置代码是iOS9以后提供的相关API。...gravity的设置就可以确定子页视图的高度和宽度,再加上线性布局的特性,所以页视图不需要设置任何附加的约束。...流式布局用于一些子视图有规律排列的场景,就比如本例子中的滚动分页的图标列表的能力。下面就是具体的实现代码。...containerView.wrapContentWidth = YES; //设置布局视图的宽度由子视图包裹,当垂直流式布局的这个属性设置为YES,并和pagedCount搭配使用会产生分页从左到右滚动的效果

    1.9K40

    iOS多设备适配简史以及相应的API支撑实现

    一直在做iOS开发的程序员相信在下面的两个版本交界处需要处理适配的坎一定让你焦头烂额过: iOS7出来后视图控制器的根视图默认的尺寸是占据整个屏幕的,如果有半透明导航条的话也默认是延伸到导航栏和状态栏的下面...你需要对所有的布局代码进行重新适配和梳理以便兼容iPhoneX和其他设备,这里面还是状态栏的高度以及底部安全区的的高度尤为棘手。 个人认为这两个版本的发布是iOS开发人员遇到的需要大量布局改版的版本。...因为iOS7和iOS11两个版本中控制器中的视图和上面所列出的一些内容之间的关系变化最大。...addSubview:button]; //下面的代码是iOS6以来自带的约束布局写法,可以看出代码量较大。...,也可以将它添加进入视图中去,也可以将这个占位视图作为其他视图的约束依赖项,唯一的不同就是占位视图不会进行任何的渲染和绘制,它只会参与布局处理。

    1.1K30

    iOS开发常用之UI模糊效果、自动版式

    自动版式 Masonry - Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性(使用介绍1 使用介绍2),iOS自适应前段库-Masonry...使用DEMO 视图居中显示,子视图含边距,视图等距离摆放,计算ScrollView的内容。 Classy - Classy是一个能与UIKit无缝结合stylesheet(样式)系统。...Snap - Snap是砌体自动布局DSL的Swift版本,是一款轻量级的布局框架,使用了更好的语法封装了AutoLayout.Snap支持iOS和OS X....来自百度知道iOS小组的内部分享。 UIView-FDCollapsibleConstraints - 一个AutoLayout辅助工具,最优雅的方式解决自动布局中子查看的动态显示和隐藏的问题。...Neon.swift - 功能强大的UI布局神器。 EasyPeasy.swift - 编程方式自动布局框架库。

    1.6K30

    SwiftUI 中掌握 ScrollView 的使用:滚动可见性

    视图修饰符让我们先从 onScrollTargetVisibilityChange 视图修饰符开始。它设计得易于使用,允许你将其附加到具有滚动目标布局的任何 ScrollView 上。...完整示例上面对视图修饰符有了初步了解,它的设计得易于使用,允许你将其附加到具有滚动目标布局的任何 ScrollView 上。让我们通过一个示例来探讨这个修饰符的使用。...整个示例分为两个部分:一个是显示带有多个文本视图的 ScrollView,另一个是显示一个视频播放器视图。...运行这个 Demo,你会看到一个带有多个文本视图的 ScrollView,当你滚动时,控制台会打印当前可见的项。...此外,在页面底部有一个视频播放器,当视频播放器出现在视口内时,它会自动播放,当其离开视口时,会自动暂停。总结今天,我们学习了如何跟踪 ScrollView 内特定视图的可见性,并监控可见标识符列表。

    22321

    MyLayout&TangramKit 的重大升级!

    //本文对AutoLayout进行约束设置都是用iOS9以后所提供的进行约束设置的简易方法。...MyLayout&TangramKit的尺寸自适应 MyLayout&TangramKit中的一个重要的能力是支持布局视图尺寸自适应的自动计算,也就是说布局视图的宽度或者高度可以根据子视图的尺寸来自行确定...S.tg_size(width:.wrap, height:.wrap) 因为MyLayout&TangramKit中的尺寸自适应约束不需要明确依赖的某个子视图,因此当布局视图中的子视图有变化时系统会自动重新进行布局视图的尺寸计算...因为MyLayout&TangramKit中的尺寸自适应约束不需要明确依赖某个子视图,因此当布局视图中的子视图有变化时系统会自动重新进行布局视图的尺寸计算,而当布局视图的尺寸变化时又会调整UIScrollView...2.使用布局视图的尺寸自适应属性 因为MyLayout&TangramKit中的布局视图具有设置尺寸自适应的属性,为了实现跟AutoLayout结合,最新版本的库的布局视图内部重载了intrinsicContentSize

    2.1K20

    iOS开发之多表视图滑动切换示例(仿头条客户端)---优化篇

    前几天发布了一篇iOS开发之多表视图滑动切换示例(仿"头条"客户端)的博客,之所以写这篇博客,是因为一位iOS初学者提了一个问题,简单的写了个demo做了个示范,让其在基础上做扩展和改进。...首先内存问题是必须考虑的,不能把这么多的TabalView实例化后添加到ScrollView上,只要是做过iOS的小伙伴这个问题应该不难看出。...再一个是头部按钮多了以后会挤在一起,还有如果添加上网络请求的话,没做本地缓存,等一系列的问题。   在今天的博客中要做两个优化。第一:多个TableView的内存问题。第二:头部多个按钮的显示问题。...今天的博客的内容是在上一篇博客iOS开发之多表视图滑动切换示例(仿"头条"客户端)做的优化和扩展,同时也会在gitHub上更新一下Demo的代码,废话不多说,开始今天博客的主题。   ...一、多张表视图的内存问题解决方案     借鉴TableView中Cell的重用机制,我们就把之前的Demo中ScrollView上的TableView进行复用,在我的博客中用的是两个TableView

    2.1K70

    SwiftUI 新容器视图 API 深度解析:轻松构建自定义布局

    通过在 Card 容器视图内嵌入不同的视图,你可以在应用的多个屏幕中复用它。这是使用容器视图的主要优势之一:你可以通过将共享的功能封装在容器视图中,在应用的不同地方重复使用它们。...,具有垂直和水平组合布局的自定义容器视图struct Magazine: View { @ViewBuilder var content: Content...你可以在应用中的多个地方使用该容器来保持一致的样式。Carousel:一个横向滚动的容器视图,可以自动排列并展示内容,适合展示横向滑动的图像或视图。...运行这个Demo此代码展示了如何在 SwiftUI 中构建自定义的容器视图,灵活地将不同的布局封装在容器中,以便在应用中多次复用这些布局模式。...总结通过使用 SwiftUI 新引入的 API 以及容器视图,你可以轻松构建具有良好复用性的自定义布局,提升应用的开发效率和代码可维护性。

    18633

    浅汇-iOS UI布局

    本次推荐使用的是一个第三方的AutoLayout库这个库实现了对普通空间的自动布局,也实现了对ScrollView及UITableView的自动布局,操作简单,功能强大(SDAutoLayout) SDAutoLayout...2、实现了UIView内子视图的自动布局; 3、实现了UIScrollView内容高度根据内部子视图的内容高度动态设置; 4、实现了一个UITableView有多个不同Cell的时候,所有cell高度自适应...,需要使用一下方法来自动布局,并且这个时候不可以再以父试图的底为标准来设置其内部子视图,这是一种【从里到外】的布局思路,cell的自适应高度也是这种思路;平时我们的思路都是一种【从外到里】的思路,先确定外面的再使其自动布局里面的...实现了UIScrollView可滚动高度根据内部子视图的内容高度动态设置 /** 设置scrollview内容自适应,第一个参数为作为底部的子视图,第二个参数为到sc底部的间距。...` ---- 小结  iOS关于UI布局的知识还有很多,至此我列举了一些需要注意的地方,使用的时候是先初始化`new`比较方便,先加载到父视图上后设置相关的属性,然后再进行布局方面的设置,若后加到父试图上

    2.1K20

    android

    但如果在项目中根据不同屏幕尺寸进行各种判断,写死坐标的话,这样开发起来是很吃力的。 所以一般用纯代码开发UI的话,一般都是配合一些自动化布局的框架进行屏幕适配。...什么是Masonry Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API。...Masonry是同时支持Mac和iOS两个平台的,在这两个平台上都可以使用Masonry进行自动布局。...在项目中设置的AutoLayout约束,起到对视图布局的标记作用。设置好约束之后,程序运行过程中创建视图时,会根据设置好的约束计算frame,并渲染到视图上。...我这里就讲一下两种进行UIScrollView自动布局的方案,并且会讲一下自动布局的技巧,只要掌握技巧,布局其实很简单。

    73420

    用 SwiftUI 的方式进行布局

    通过命名空间以及 ID 来保存特定视图的几何信息( 位置、尺寸 ),并自动设置给其他有需求的视图。...ScrollView 会使用父视图给定的全部建议尺寸创建滚动区域,但在询问其子视图的需求尺寸时只会提供理想尺寸。...scrollDisabled( 则让我们可以在 iOS 16+ 中屏蔽 ScrollView 的滚动手势 )。...因此,只需要在状态切换时,调整视图二的对齐指南即可( 视图一将自动跟随视图二移动 )。 此种方式在视觉上与通过 VStack 的实现类似,但两者在需求尺寸上有明显不同。...七、Transition 通过为视图设定 Transition( 转场 ),在视图插入或将其移出视图树时,SwiftUI 将自动生成对应的动画效果。

    3.3K00

    用 SwiftUI 的方式进行布局

    大致效果如下: 图片 解决方案 对于上面的需求,相信不少读者都会在第一时间想出多个解决方案。下文中,我们将用 SwiftUI 布局系统提供的多种手段来实现该要求。...通过命名空间以及 ID 来保存特定视图的几何信息( 位置、尺寸 ),并自动设置给其他有需求的视图。...ScrollView 会使用父视图给定的全部建议尺寸创建滚动区域,但在询问其子视图的需求尺寸时只会提供理想尺寸。...scrollDisabled( 则让我们可以在 iOS 16+ 中屏蔽 ScrollView 的滚动手势 )。...因此,只需要在状态切换时,调整视图二的对齐指南即可( 视图一将自动跟随视图二移动 )。 此种方式在视觉上与通过 VStack 的实现类似,但两者在需求尺寸上有明显不同。

    4.8K80

    iOS10-iOS15主要适配回顾

    ios15适配 1、UITabar、NaBar新增scrollEdgeAppearance,来描述滚动视图滚动到bar边缘时的外观,即使没有滚动视图也需要去指定scrollEdgeAppearance,...ATTrackingManager请求权限不弹框 4、iOS15终于迎来了UIButton的这个改动 ios14适配 1、更改了cell布局视图,之前将视图加载在cell上,将会出现contentView...,使用libc++代替 2、短信 验证码自动填充api if (@available(iOS 12.0, *)) { codeTextFiled.textContentType = UITextContentTypeOneTimeCode...; } ios11适配 1、ViewController的automaticallyAdjustsScrollViewInsets属性被废弃,用scrollView的contentInsetAdjustmentBehavior...4、AVPlayer增加了多个属性,timeControlStatus、 automaticallyWaitsToMinimizeStalling 5、tabar未选中颜色设置 用 unselectedItemTintColor

    1.2K50
    领券