IOS 学习笔记 UIView

目录

1 UIView

1.1 UIView继承结构图

1.2 视图的分类

1.2.1 控件

1.2.2 窗口 

1.2.3 容器视图

1.2.4 显示视图

1.2.5 文本和web视图

1.2.6 导航视图

1.2.7 警告框和操作表

1.3 应用界面的层次结构

2 界面构建

2.1 StoryBoard

2.3 XIB布局

2.3 纯代码布局


1 UIView

CocoaTouch框架中视图的根类是UIView,类似于Android中的View,学习IOS的基础,首先要熟悉UIView的使用,因为一切和用户交互的行为都是建立在视图的基础上的,用户可见和用户行为都需要和这些控件进行交互。UIView的继承结构图如下1.1

 

1.1 UIView继承结构图

 

1.2 视图的分类

视图分为以下几类

 

1.2.1 控件

该类视图继承至UIControl,能够响应用户的高级事件,UIButton、UIDatePicker、UISwitch等。

 

1.2.2 窗口 

窗口就是UIWindow对象,一个IOS应用只有一个UIWindow对象,它是所有子视图的根容器,类似于Android中的Window

 

1.2.3 容器视图

容器视图包括UIToolbar、UIScrollView和其的子类,当显示的内容超出屏幕的时候会出现水平或者垂直方向上的滚动条。

 

1.2.4 显示视图

显示视图用于显示文字、图片等信息,包括UIImageView、UILable、UIProgressView、UIActivityIndicatorView。

 

1.2.5 文本和web视图

UITextView、UIWebView,UITextView同时也是容器视图,UIWebView用来家在显示HTML,他们都可以用来显示多行文本。

 

1.2.6 导航视图

为用户提供屏幕间跳转的导航视图,有UITabBar、UINavigationBar。

 

1.2.7 警告框和操作表

用以和用户交互,以此来提供反馈,如通过动画的形式弹出来一个警告框的视图,操作表是提供给用户进行选择的可操作视图,

在进行UIView 的学习之前首先要熟悉xcode的使用,以及怎么通过xcode创建一个空白的工程,网络上有很多教程。

 

 

1.3 应用界面的层次结构

一般情况一个IOS的应用只会包含一个UIWindow,同时它包含了一个RootView图UIView,根视图RootView一般也只有一个,同UIWindow是配套的。

 

应用界面的视图层级结构类似于一棵树,Window是树根,RootView是树干,其他的视图对象就是枝叶,如下图

 

 

2 界面构建

界面的构建有三种方式,StoryBoard,xib文件(其实根StoryBoard差不多,都是可以拖拽布局),或者使用纯粹的代码布局

 

2.1 StoryBoard

目前xcode默认布局使用故事板(StoryBoard)来构建界面,老版本的工程中则使用的XIB文件来构建,XIB是在NIB的基础上发展而来,最初苹果公司采用的是NIB来构建界面,后来文件格式采用了xml,便更名为XIB,当然现在依然是兼容XIB构建界面的,而且市面上大部分的应用就是采用xib来勾结应用界面的,怎么样使用xib构建应用界面请参考:IOS 学习笔记 使用xib文件构建界面

StoryBoard本质上是xml文件,用来描述界面的组成,如有什么视图,布局怎样,界面间的跳转导航等。如下图,目前使用的是Version 10.1 (10B61),界面如下,StoryBoard中添加控件采用拖动即可,很方便,点击a处,会出现控件区域,直接拖动到StoryBoard就好了。

 

2.3 XIB布局

通过XIB布局,需要修改xcode的一些配置,详细可参考IOS 学习笔记 使用xib文件构建界面,这篇文章,点击直接跳转。

 

2.3 纯代码布局

使用纯粹的首先需要做点准备,需要先删除ViewController和main.storyBoard等文件,具体参考《IOS 学习笔记 使用xib文件构建界面》这篇文章,有详细步骤

 

在做好准备后,代码布局需要在viewDidLoad方法中进行,如下我们先初始化一个UILable视图,然后设置它的背景颜色,宽高等属性,然后通过addSubView将它添加到根容器中。

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    UILabel *view = [[UILabel alloc]init];
    view.backgroundColor = [UIColor orangeColor];
    view.frame = CGRectMake(100, 100, 200, 50);//(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
    view.bounds = CGRectMake(0, 0, 100, 100);//Bounds is in terms of local coordinate system 是在局部坐标系统
    view.center = CGPointMake(100, 200);//设置控件位置   
    
    [self.view addSubview:view];
}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值