文档章节

01-UI基础-01-概述

口十耳
 口十耳
发布于 2016/01/04 14:08
字数 1385
阅读 17
收藏 1

#1、UIKit ##类结构图 UIKit类结构图

#2、可能用到的UI UI控件名称 | 中文名称 | | UI控件名称 | 中文名称 -- | -- | -- | -- | -- <font color=red >UIButton</font> | <font color=red >按钮</font> | | <font color=red >UIScrollView</font> | <font color=red >滚动的控件</font> <font color=red >UILabel</font> | <font color=red >文本标签</font>| | <font color=blue >UIPageControl</font>| <font color=blue >分页控件</font> <font color=red >UITextField</font> | <font color=red >文本输入框</font>| | <font color=red >UIImageView</font>| <font color=red >图片显示</font> UIProgressView | 进度条| | UISlider| 滑块 <font color=blue >UISwitch | <font color=blue >开关| | UISegmentControl| 选项卡 <font color=blue >UIActivityIndicator | <font color=blue >圈圈</font>| | <font color=red >UIAlertView</font> | <font color=red >对话框(中间弹框)</font> <font color=blue >UIActionSheet</font> | <font color=blue >底部弹框</font>| | <font color=blue >UITextView</font> | <font color=blue >能滚动的文字显示控件</font> <font color=red >UITableView</font> | <font color=red >表格</font>| | <font color=blue >UICollectionView</font> | <font color=blue >九宫格</font> <font color=blue >UIPickerView</font> | <font color=blue >选择器</font>| | <font color=blue >UIDatePicker</font>| <font color=blue >日期选择器</font>
<font color=blue >UIWebView</font> | <font color=blue >网页显示控件</font> | | UIToolbar | 工具条 <font color=red >UINavigationBar</font> | <font color=red >导航条</font>| | … | …

<font color=red >* 红色</font> 表明最常用,<font color=blue >蓝色</font> 代表一般,黑色代表几乎不用(这不是绝对的,仅供参考)

#3、UIView ##Inherits From Inherits From ##属性 ###1. alpha(视图的透明度)

// 完全透明
view.alpha = 0;
// 不透明
view.alpha = 1;

###2. clipsToBounds

// 默认是NO,当设置为yes时,超出当前视图的尺寸的内容和子视图不会显示。
view.clipsToBounds = YES;

###3.hidden(是否可见)

// 默认是NO,当设置为yes,视图就看不见了。
view.hidden = YES;

###4.userInteractionEnabled(是否可响应事件)

// 默认为YES,如果设置为No,view就不能和用户交互了。(即不能响应事件)
view.userInteractionEnabled = NO;

###5. tag(标记)

// 默认为0,用来标记视图的
view.tag = 0;

###6. exclusiveTouch 默认为No exclusiveTouch的意义在于:如果当前设置了exclusiveTouch的UIView是整个触摸事件的第一响应者,那么到你所有的手指离开屏幕前其他的UIView是无法接受到整个事件周期内所有的触摸事件。

###7. CGRect frame

  1. 表示控件的位置和尺寸(以父控件的左上角为坐标原点(0, 0))
  2. 修改这个属性,可以调整控件的位置和尺寸

###8. CGPoint center

  1. 表示控件的中点(以父控件的左上角为坐标原点)
  2. 修改这个属性,可以调整控件的位置

###9. CGRect bounds

  1. 表示控件的位置和尺寸(以自己的左上角位坐标原点,位置永远是(0, 0))
  2. 修改这个属性,只能调整控件的尺寸

###10. CGAffineTransform transform

  1. 表示控件的形变状态(旋转角度、缩放比例)
  2. 创建CGAffineTransform的函数
// 创建一个x、y方向的缩放比例分别为sx、sy的形变值
CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)
// 创建一个旋转角度为angle的形变值
CGAffineTransformMakeRotation(CGFloat angle)
// 在形变值t的基础上,再进行缩放,x、y方向的缩放比例分别为sx、sy,然后返回一个新的形变值
CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)
// 在形变值t的基础上,再进行旋转,旋转角度为angle,然后返回一个新的形变值
CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)

###11. superview(父视图) 返回当前视图的父视图。(只读) ###12. window(当前视图) 返回当前视图的窗口。(窗口)

获取根视图的superview和window时,需要注意,在viewdidload中是获取不到的,viewdidload只是视图加载完成,并没有添加到窗口中,因此需要在viewDidAppear方法中才能获取到。那时候视图才被添加到窗口中。

- (void)viewDidLoad
{
    [super viewDidLoad]; 
    NSLog(@"%@",self.view.superview); // 没有值
    NSLog(@"%@", self.view.window); // 没有值
}
- (void)viewDidAppear:(BOOL)animated
{
    NSLog(@"%@",self.view.superview); // 有值
    NSLog(@"%@", self.view.window);  // 有值
}

###13.autoresizesSubviews 默认为YES,表示当父视图尺寸改变时,子视图也会随着改变。 ###14.autoresizingMask 默认为UIViewAutoresizingNone,不会自动伸缩。 ###15.contentMode 设置内容模式。

  • UIViewContentModeScaleToFill
    不按照原宽高比例(长和宽不等比例增长)以任意比例填充。这样视图不会有空白,且内容可以全部显示。
  • UIViewContentModeAspectToFill
    按照原长宽比例填充,不完全显示全部内容。这样内容可能溢出,但整个视图不会留有空白。
  • UIViewContentModeAspectToFit 按照原长宽比例(长和宽等比例增长),完全显示全部内容。这样容易照成左右或者上下留有空白。

###16.backgroundColor(背景颜色) 默认是nil。

// 设置背景颜色为红色
self.view.backgroundColor = [UIColor redColor];

###17.UIView常用添加子视图方法

//加一个视图到一个视图里面  
addSubview:  
//将一个视图移到前面  
bringSubviewToFront:  
//将一个视图推送到背后  
sendSubviewToBack:  
//把视图移除  
removeFromSuperview  
//插入视图 并指定索引  
insertSubview:atIndex:  
//插入视图在某个视图之上  
insertSubview:aboveSubview:  
//插入视图在某个视图之下  
insertSubview:belowSubview:  
//交换两个位置索引的视图  
exchangeSubviewAtIndex:withSubviewAtIndex:  

##官方文档 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/cl/UIView

#4、界面 ##1.界面文件 ###1.1 storyboard文件 描述软件界面,重量级,一般用来描述整个软件的所有界面。

###1.2 Xib文件 描述软件界面,轻量级,一般用来描述局部界面

  1. 新建一个继承UIView的自定义view,假设类名叫(MyView)
  2. 新建一个MyView.xib文件来描述MyView内部的结构
  3. 修改UIview的类型为MyView类型
  4. 将内部的子控件跟MyView进行属性连线
  5. 为MyView提供一个模型属性
  6. 重写模型属性的set方法,将数据进行绑定
  7. 把模型数据拆开,分别设置数据到对应的子控件中
  8. 补充:提供一个创建MyView的类方法,将读取.xib文件的过程封装起来。

##2. 两种文件比较 ###2.1 共同点

  • 用来描述软件界面
  • 都用Interface Builder工具来编辑

###2.2 不同点

  • xib是轻量级的,用来描述局部的UI界面
  • Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系

© 著作权归作者所有

口十耳
粉丝 6
博文 69
码字总数 66563
作品 0
浦东
高级程序员
私信 提问
Embrace开源学院开讲啦! 小伙伴们日夜期待的JBoss应用管理课程(基于JBoss EAP6/AS7)现在开始招生啦!

开班时间:2013年11月19日-22日(共4天) 开班课程:红帽 JBoss 应用程序管理 I (JB248) 开班地点:北京 优惠信息:10月底前企业用户报名2人以上还赠送3个月的JBoss EAP6/JBoss AS7技术支持哦...

Embracesource
2013/10/25
369
0
会议纪要-03.17.2015

曾艳明: 01.完成数据模块(玩家表,模板表) 02.推塔系统(基础信息部初始化部分50%) 杨祁博: 01.完成推塔初始化 02.完成推塔主界面 卢凯庆: 00.替换主城和UI 00.配合若希使用剧情编辑器...

索亚之息
2015/03/17
4
0
会议纪要-06.10.2015

祁博: 01.关卡怪物预览 凯庆: 01.替换祭坛UI 02.商店微调UI 雷鹏: 01.逻辑替换(副本) 国雄: 01.竞技场结算 艳明: 01.好友系统开发 02.修改bug 晓秋: 01.测试修改精英关卡和地宫怪物数...

索亚之息
2015/06/10
2
0
会议纪要-05.12.2015

祁博: 01.修改英雄,附魔,地宫Bug 凯庆: 01.召唤UI替换 雷鹏: 01.竞技场UI替换 国雄: 01.竞技场排名UI替换 艳明: 01.修改bug 02.服务器部署 晓秋: 01.技能描述 徐刚: 01.更新六月份版...

索亚之息
2015/05/12
1
0
会议纪要-05.22.2015

祁博: 01.修改英雄升星 02.修改bug 凯庆: 01.修改bug 02.UI展示 雷鹏: 01.替换关卡UI完成 国雄: 01.GM工具对接 艳明: 01.开发GM工具 晓秋: 01.整理技能数据 02.补充数据 徐刚: 01.聊天...

索亚之息
2015/05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySql双主架构原理

在企业中,一般系统架构的瓶颈会出现在数据库这一部分,mysql主从架构在很大程度上解决了这部分瓶颈,但是在mysql主从同步的架构也存在很多问题;比如:1.关于数据写入部分(也就是主库)往往很难做...

xiaomin0322
33分钟前
1
0
分布式系统中一致性哈希

问题场景 近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多...

Java领航员
34分钟前
1
0
接口限流算法:漏桶算法和令牌桶算法

漏桶算法 漏桶可以看作是一个带有常量服务时间的单服务器队列,如果漏桶(包缓存)溢出,那么数据包会被丢弃。这一点和线程池原理是很相似的。 把请求比作是水,水来了都先放进桶里,并以限定...

铁骨铮铮
41分钟前
6
0
Android 生成二维码工具类

/** * 生成条形码和二维码的工具 */public class ZXingUtils { /** * 生成二维码 要转换的地址或字符串,可以是中文 * * @param url * @param width ...

lanyu96
47分钟前
2
0
谈谈lucene的DocValues特性之SortedNumericDocValuesField

前面已经介绍过NumericDocValuesField,这里想强调一下SortedNumericDocValuesField是针对同一篇文档中一键多值的情况进行排序的,换句话说不同文档的同一字段值可以乱序。核心的写入流程与谈...

FAT_mt
55分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部