首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

iOS9特性——堆叠视图UIStackView

iOS9特性——堆叠视图UIStackView 一、引言         随着autolayout的推广开来,更多的app开始使用自动布局的方式来构建自己的UI系统,autolayout配合storyBoard...二、在storyBoard上初识StackView         UIStackView是一个管理一组堆叠视图的控制器类视图,所谓堆叠视图时一种平铺式的线性布局方式,不可重叠,布局方向也不可交错,如果你做过...Alignment是选择其管理视图的对齐模式,我们这里选择充满。 Distribution是设置其管理视图的排列方式,我们选择等宽充满。 Spacing是设置视图之间的间距,设置为10....UIStackViewAlignmentTrailing,     //基线对其,水平布局有效     UIStackViewAlignmentLastBaseline,  } NS_ENUM_AVAILABLE_IOS...UIStackViewDistributionEqualSpacing,     //中心距离相等     UIStackViewDistributionEqualCentering, } NS_ENUM_AVAILABLE_IOS

1.7K10

iOS之深入解析Xcode 13正式版发布的40个特性

; 现在可以在 Add Packages 表中添加精选的包集合; 单元测试现在可以直接测试可执行目标。...“Convert Call to Async Alternative”可用于将完成处理程序作为最后一个参数的调用,并重构它们以使用的异步语言功能,假设该函数的异步等效已经存在; 现在可以将的 Add...枚举自定义如何将性能测试的自定义指标的测量值与设置的基线进行比较; XCTest 现在能够在受支持的 iOS 设备上的 UI 测试中合成指针交互; Xcode 现在为在运行测试时崩溃的进程收集代码覆盖率数据...二十九、Audio Units Audio Units 现在提供 Audio Unit host 可以在 iOS 中显示的自定义视图。...四十、UIKit 对于针对 iOS 15 beta SDK 编译的应用程序,在文本视图和文本字段中键入时,按键命令不再拦截文本输入和文本编辑命令。

8.6K40

架构之路 (五) —— VIPER架构模式(一)

在此过程中,您还将了解您的iOS项目中的SwiftUI和Combine。 打开启动项目。这包括一些代码,让你开始: 当你构建其他视图时,ContentView会启动它们。...TripListInteractor,添加: func deleteTrip(_ index: IndexSet) { model.trips.remove(atOffsets: index) } 这将从数据模型中的trips集合中删除...将widgets添加到视图。...您可以在trip detail视图中重新排列列表。但是要创建一个的waypoint,您需要一个视图,以便用户输入名称。 为了得到一个视图,你需要一个Router。...将它们添加到一个名为TripDetailModule的组中。 模块是保持代码整洁和分离的好方法。作为一个好的经验法则,一个模块应该是一个概念性的屏幕/特性,routers在模块之间传递用户。

17.3K10

最新iOS设计规范四|3大界面要素:视图(Views)

本文是iOS设计规范系列第4篇,介绍3大界面要素(栏、视图、控件)中的视图(Views)。首先让我们回顾一下iOS的3大界面要素。...二、活动视图(Activity Views) 活动视图通常出现在当前上下文中,而活动便是一任务,例如复制、收藏、查找。一旦启动,活动可以立即执行任务,或者在之前页面的基础上访问更多信息。...四、集合(Collections) 集合主要用来管理一系列有序的内容,例如一组照片,并以可自定义和高度可视化的布局呈现。因为集合没有强制执行严格的线性格式,所以它特别适合显示大小不同的。...在集合中,插入、删除或重新排序项目,都可以启用动画,并且还支持自定义动画。 当标准行或网格布局足够时,避免创建的设计。集合应该是用来优化用户体验的,而不是成为关注的焦点。...可以考虑定期更新表格内容,及时展示的数据。但不要改变滚动的位置。相反,将内容添加到表的开头或结尾,让用户在准备好时滚动到它。

8.3K31

iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

4.2.3 集合视图 集合视图用于管理一系列有序的,并以一种自定义的布局来呈现它们。 ?...默认情况下,集合视图可以识别轻击(tap)某项以选中,和长按(touch-and-hold)某项进行编辑。 使用集合视图来让用户查看和操作一系列不适合以列表形式呈现的。...由于集合视图的布局不是一个严格的线性布局,因此尤其适合用来展示一些尺寸不一致的集合视图支持广泛的自定义,因此我们要尽量避免把心思都放在进行全新的设计上。...让视图中的更容易选中。如果用户很难点中集合视图中的,他们是不会愿意用你的应用的。...集合视图允许你在用户浏览和操作的时候调整视图的布局。但当你决定调整它的时候,请确保这个动态变化是有意义且容易跟踪的。

10.1K51

UIDynamic 物理引擎概念介绍UIDynamicAnimator(动画者)动力行为(UIDynamicBehavior)一、抽象类 UIDynamicBehavior二、UIGravityBeh

ios9特性参考 http://www.cocoachina.com/ios/20150719/12613.html @property (nonatomic, readwrite) CGPoint...子视图为基准的坐标转换为以父视图为基准的视图坐标方法 ---- UIPushBehavior(推行为) 注意要进行懒加载,多次添加会导致无效 1.获取该行为作用的动力 @property...(readwrite, nonatomic) CGVector pushDirection; 例子:push.pushDirection = CGVectorMake(1, 1); 方法: 1.将行为添加到动力当中...@property (nonatomic, getter = isAnchored) BOOL anchored; 方法 1.创建一个动力行为对象,并添加到一组动力当中 - (instancetype...)initWithItems:(NSArray> *)items; 2.将行为添加到动力当中 - (void)addItem:(id <UIDynamicItem

3K80

ARKit介绍

Apple在WWDC17上宣布了一个名为ARKit的iOS框架。它是一个“允许您轻松为iPhone和iPad创建无与伦比的增强现实体验”的框架。...我们知道增强现实并不是的,但由于Apple的框架,AR现在正受到很多关注。Pokemon Go是第一个也许是最着名的应用程序之一,它向我们展示了应用程序中AR的强大功能。...通过这个框架,通过为iOS提供本机AR支持,开发人员可以更方便地访问AR。...最后,最后一个问题:如何将节点放在最近的平面上?我已经知道如何将节点放置在摄像机所在的位置,但我如何获得距离最近的平面的距离。答案是:hitTest(_:types:)。...,并且作为默认平面,我使用了列表的第一(最近的平面)。

2.3K20

Cocoa编程中视图控制器与视图类详解

使用pushViewController: animated:可推入一个的控制器,从而增加到导航栈。(记住:导航栏控制器不添加一个视图进去,这个导航栏是没有意义的!)...推入时,视图控制器从右方滑入屏幕(假定animated:YES)。向左指的Back后退按钮出现,可返回到上一步,且Back按钮用的是上一个视图控制器的标题。 2....或其他任何类型的视图控制器),并通过设置栏的viewControllers属性将其添加到选项卡栏,使每个选项卡对应一个试图控制器。...iOS编程中占据非常重要的位置,因此我们一定要掌握。...视图控制器剖析 视图控制器有一个导航,一个工具栏子项集以及一个tabbarItem与其关联。 3.

5K50

iOS开发UINavigation系列四——导航控制器UINavigationController

iOS开发UINavigation系列四——导航控制器UINavigationController 一、引言         在前面的博客中,我么你介绍了UINavigationBar,UINavigationItem...)animated; //压入视图控制器 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated...后导航的特性 //这个方法是为了iOS方法的命名统一,在导航中,其作用和push一样 - (void)showViewController:(UIViewController *)vc sender:...UIViewController *)fromVC toViewController:(UIViewController *)toVC ; 六、与UIViewController相关         当一个controller被添加到导航中后...,系统会为它分配一些属性,如下: //当前controller对应的导航 @property(nonatomic,readonly,strong) UINavigationItem *navigationItem

1.8K20

IOS开发之视图视图控制器

视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西。在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多。...UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到视图中才能显示。...下面是iOS提供的一些管理子视图的方法,常用方法如下:             (1) initWithFrame : 通过frame初始化视图,参数为CGRectMake(x, y, width, height...(4) insertSubView: belowSubView: 在某个子视图的后面添加一个视图             (5) bringSubViewToFront: 把子视图放到最前             ...在使用是,你通常不必直接UITableBar和UINavigationBar的,而是通过恰当的控制器接口或Interface Builder来对其进行配置,Table Bar 和 Navigation

1.7K70

UIKit Dynamics:开始入门 —《Graphics & Animation系列一》

翻译自raywenderlich网站iOS教程Graphics & Animation系列 介绍 UIKit Dynamics是一个集成到UIKit中的完整物理引擎。...这个类跟踪你添加到引擎的各种行为,比如引力,并提供整体上下文。当创建animator的实例时,将传入animator用于定义其坐标系的参考视图。...collision.translatesReferenceBoundsIntoBoundary = true animtor.addBehavior(collision) 上面的代码创建了一个碰撞行为,它定义了一个或多个关联与之交互的边界...然后创建一个的捕捉行为,将方块对齐到用户的触摸位置,并将其添加到动画制作工具中。 构建并运行应用程序。...尝试点击; 方块会跑到触摸的地方 这里是最终demo,此demo是raywenderlich下面iOS的Graphics & Animation整个教程系列的集合

1.8K30

AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架的视频流App的构建

接着看下写作环境: Swift 5, iOS 14, Xcode 12 下面就是正文了。 你已经在 iOS 应用程序上工作了一段时间,你认为你很聪明。 你以为你已经做到了,嗯?...中的按钮,在 Open Video Player注释下添加以下代码: selectedVideo = video 然后,将 fullScreenCover(item:onDismiss:content:) 视图修饰符添加到...2) 您使用初始值设定创建 LoopingPlayerUIView 的实例并返回实例。 3) SwiftUI 在需要更新底层 UIView 时会调用此方法。 现在,将其留空。...LoopingPlayerView( videoURLs: videoClips, rate: $embeddedVideoRate, volume: $embeddedVideoVolume) 最后,将以下视图修饰符添加到...缺点是,在撰写本文时,iOS 14.5是可用的最新版本,VideoPlayer 的 SwiftUI 视图未显示画中画按钮。

6.9K10

读 SnapKit 和 Masonry 自动布局框架源码

的 block 参数会将创建的 MASConstraintMaker 这个工厂类对象暴露出去,让我们去设置这个类对象中的 MASConstraint 属性,然后通过该对象的 install 方法将当前视图中所有添加的约束添加到一个数组里...MASViewConstraint 对象,这里通过将的 MASViewConstraint 对象的 delegate 设置成自己的方式让对象也能够调用相同的方法创建一个的 MASViewConstraint...在这个 install 方法里会创建 MASLayoutConstraint 对象,然后把这个对象添加到对应的的视图上。...self.layoutPriority; layoutConstraint.mas_key = self.mas_key; 创建完 MASLayoutConstraint 对象后,会根据约束的设置判断将约束添加到哪个视图上...mas_closestCommonSuperview 方法去找两视图的共同父视图,不然如果只设置了高宽,就把约束加到当前视图上,其它情况就加到当前视图的父视图上。

2.1K21

Python指南:组合数据类型

Python提供了两种内置的集合类型:可变的set类型,固定的frozenset类型。进行迭代时,集合类型以任意顺序提供其数据。 只有可哈希运算的对象可以添加到集合中。...内置的可变数据类型(比如dict、list、set)都不是可哈希运算的,不能添加到集合中。 2.1 集合 集合是0个或多个对象引用的无序组合。...语法 描述 s.add(x) 将x添加到s中——如果s中尚未包含x s.clear() 清空s s.copy() 返回s的浅拷贝 s.difference(t)s-t 返回一个集合,其中包含在s中但不在...s与t中的每个数据,但不包含同时在这两个集合中的数据 s.symmetric_difference_update(t)s^=t 使得s只包含其自身与t的对称差 s.union(t)s|t 返回一个集合...,其中包含集合s中的所有数据以及在t中而不在s中的数据 s.update(t)s|=t 将t中每个s中不包含的数据添加到集合s中 2.1.3 集合内涵 除了调用set()创建集合,或使用集合字面值创建集合

2.5K10
领券