iOS10 UI教程禁用视图与用户的交互 在上文中我们提到了使用isHidden属性和alpha属性可以使视图与用户的交互被禁用,除此之外此功能还可以使用UIView的isUserInteractionEnabled属性实现,其语法形式如下: var isUserInteractionEnabled: Bool { get set } 此属性可以接收一个布尔值,当接收的布尔值为false时,视图与用户的交互就会被禁用. [示例1-2:isUserInteractionEnabled]以下将禁用文…
iOS10 UI教程子视图和父视图UI层次结构和Views继承 iOS10 UI教程子视图和父视图UI层次结构和Views继承,本节将讲解与UI层次结构和Views继承相关的内容,其中包括子视图和父视图.管理层次结构.视图和子视图的可见性.层次结构的事件等内容. 子视图和父视图 每一个UIView(或者是子类)的实例都可以与其它的视图使用父-子关系的方式进行连接.其中父视图被称为superview(超视图),孩子视图被称为subviews(子视图).一个视图可以有且仅有一个父视图,但是可以有多个…
iOS10 UI教程视图的几何形状 视图属性中的一部分属性可以让定义的视图绘制在屏幕上.在讲解这些属性前,我们首先将讲解,定义视图的几何形状所涉及到的结构类型.这些结构类型如下: CGPoint:它表示一个二维坐标系中的点,由x和y两个属性进行定义. CGSize:它表示一个矩形的尺寸,由width和height两个进行定义. CGRect:它表示一个矩形的位置和大小,由origin和size两个属性进行定义. 注意:初始化这些结构类型所需要的代码非常简单,而且有很多功能都是通过Apple提供的…
iOS10 UI教程基改变视图的外观与视图的可见性 视图是应用程序的界面,是用户在屏幕上看到的对象.用户可以通过触摸视图上的对象与应用程序进行交互,所以视图界面的优劣会直接影响到了客户体验的好坏.和视图相关的类有很多,如UILabel.UITextView.UIView.UIImageView等.其中,UIView是一个基类,其它表示视图的类都是继承此类.UIView可以用来实例化通用视图,也可以被继承创建自定义的视图.本节将主要讲解使用UIView中的属性改变视图的外观.视图的可见性.禁用视图…
iOS10 UI教程管理层次结构 iOS10 UI教程管理层次结构,在一个应用程序中,如果存在多个层次结构,就需要对这些层次结构进行管理.在UIView类中提供了可以用来管理层次结构的方法,让开发者可以添加.移动.删除来自层次结构中的元素.开发者可以在视图的实例上直接使用这些方法.以下将讲解3种管理层次结构的方法,分别为添加视图.插入视图以及移除视图. 1.添加视图 添加视图可以使用addSubview(_:)方法,此方法可以添加一个视图到子视图列表的末尾.被添加的视图被作为相同子视图的同级.同…
iOS10 UI教程视图的生命周期 说到视图的生命周期一般都是指视图控制器的视图生命周期.在视图的声明周期中最主要的有8个方法,分别为loadView().viewDidLoad().viewWillAppear(_:).viewWillLayoutSubviews().viewDidLayoutSubviews().viewDidAppear(_:).viewWillDisappear(_:).viewDidDisappear(_:),对于这几个方法的说明如表1-5所示.视图的生命周期的流程以…
iOS10 UI教程视图的绘制与视图控制器和视图 iOS10 UI视图的绘制 iOS10 UI教程视图的绘制与视图控制器和视图,在iOS中,有很多的绘图应用.这些应用大多是在UIView上进行绘制的.如果想在一个UIView中绘制一个图形,需要写一个扩展UIView的子类,并重写draw(_:)方法.在该方法中实现绘图操作,程序会自动调用此方法进行绘图. [示例1-11:ViewDrawing]以下将在视图上绘制一个椭圆.具体的操作步骤如下: (1)创建一个基于UIView的类文件,命名为ell…
iOS10 UI教程视图调试 iOS10 UI教程视图调试,当视图很复杂的时候,层次结构就不会很简单了.Xcode可以通过视图(View)调试帮助开发者解决层次结构复杂的问题.视图调试是在Xcode 6中引入的.通过视图调试,开发者可以看到当前的视图层次结构变为了一个可交互的三维原型视图,如图1.21所示.该三维视图除了展示app的视图层次外,还展示每个视图的位置.顺序和视图尺寸,以及视图间的交互方式.   图1.21  三维原型视图 [示例1-10:ViewHierarchy]以下将实现视图调…
iOS10 UI教程视图和子视图的可见性 iOS10 UI教程视图和子视图的可见性,一个父视图可以通过clipsToBounds属性,定义子视图在边界(边界就是父视图的框架也就是父视图可以显示的范围)以外部分的可见性.其语法形式如下: var clipsToBounds: Bool { get set } 其中,将此属性设置为true,视图将掩盖它的子视图,防止这些子视图被显示在边界之外,如图1.17所示.   图1.17  可见性 [示例1-8:clipsToBounds]以下将使用clips…
iOS10 UI教程视图的中心位置 center表示的是视图的中心位置属性,这个属性在相对的UI层次结构上工作,和frame类似.center属性是一个在父视图上定义视图的位置的简便方法.center属性和frame.origin属性计算位置的方式不同,如图1.11所示.frame的origin位置在使用视图的左上角计算,而center的位置在使用视图的中心计算.   图1.11  中心位置 [示例1-5:center]以下将输出红色空白视图的中心位置和frame的origin位置.代码如下:…