您的位置:首页 > 产品设计 > UI/UE

【IOS 开发学习总结-OC-41】★★ios开发——代码控制 UI 界面与 UI 控件的自定义

2015-10-11 10:38 776 查看
代码控制界面与故事板或 xib 文件 控制界面的本质是一样高的:都是把 UI 控件作为一个积木块,然后把它们组合起来。

提示说明:

纯代码的方式开发 IOS 应用 并不是最好的开发方式——开发步骤繁琐,而且,是所有创建程序界面的代码都有应用 程序 委托对象的方法负责完成,这并不符合 MVC 设计原则——这不利于程序组件的解耦。

有父容器后要写的三段代码

一旦程序有了 UIView 作为容器,接下来的代码只有3部分或者说3段(归纳的说法),哪3部分呢?:

创建 UI 控件,比如创建 UILabel,UIButton 等;

调用
addSubView:
方法将 UI 控件添加到其他容器中;

多次调用 UI 控件的 setter 方法来设置 UI 控件的外观和行为。

自定义UI 控件

IOS 的其他 UI 控件都继承了 UIView,UIView 控件只是一个矩形的空白区域。这些 UI 控件都是在 UIView提供的空白区域上绘制外观。

基于这样的原理,我们就可以开发项目中需自定义的控件了——ios 提供的控件不满足需要时,我们可以通过继承UIView来派生自定义控件。

UI控件概述:

ios 所有的 UI 控件都继承 UIView, 而 UIView 呢,继承了 UIResponder基类,UIResponder代表用户操作的响应者。

UI 控件大体可分为3类:

①:活动控件——可以与用户交互,大部分活动控件都继承了 UIControl 基类(关于UIControl,会在以后的文章中进行总结),用户操作控件时激发相应的事件——该事件激发该控件上为该事件绑定的事件处理方法。如 UIButton;

②:静态控件——只是继承了UIView,不继承UIControl。该类控件只是用来显示应用状态,用户不能对静态控件执行任何操作。如 UILbel;

③:被动控件——可接受用户操作,但通常仅用于接受用户输入的值。——这些控件不会激发 IBAction 方法。比如文本框控件;

tips: 这里的 UI控件所属的角色并不是一成不变的,有些控件可根据需要选择多种模式。

自定义 UI 控件可被重写的方法

当我们打算派生自己的 UI 控件时,首先定义一个继承 View 基类的子类,然后重写父类的方法。通常可被重写的方法如下:

1.
-(instancetype)initWithFrame:(CGRect)frame
:创建 UI 控件时常会调用该方法执行初始化,如果对 UI 控件执行一些额外的初始化 ,可重写该方法;

2.
-(instancetype)initWithCoder:(NSCoder *)aDecoder
:通过 nib 文件加载完该控件后会自动调用该方法。——如果程序需要在 nib 文件中加载 该控件后执行自定义初始化,则可通过重写该方法来实现。

3.
-(void)drawRect:(CGRect)rect
:重写该方法,重新绘制该控件的内容;

4.
-(void)layoutSubviews
——重写可实现对该控件包含的子控件布局进行更精确的控制;

5.
-(void)didAddSubview:(UIView *)subview
——添加子控件完成时激发该方法;

6.
-(void)willRemoveSubview:(UIView *)subview
——将要移除子控件时激发该方法;

7.
-(void)willMoveToSuperview:(UIView *)newSuperview
——将要添加到父控件中时激发该方法;

8.
-(void)didMoveToSuperview
——已经添加到父控件中时激发该方法;

9.
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
——用户手指开始触碰该控件时,将激发该方法;

10.
-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
——手指在控件上移动时,将会激发该方法;

11.
-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
——手指结束触碰控件时,将会激发该方法;

12.
-(void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
——用户取消触碰该控件,会激发该方法。

实例——随手指运动的小球:

代码资源下载:随手指运动的小球DEMO

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios ios开发 代码 ui