1.frame\center\bounds

1> frame:能修改位置和尺寸

2> center:能修改位置

3> bounds:能修改尺寸(x\y一般都是0)

2.在.m中声明的方法是私有方法,外界无法直接访问,保证了封装性

3.UIView 一般翻译叫做:视图\控件\组件

UIButton、UILabel、UITextField都继承自UIView

3.1.UIImageView和UIButton

1> 使用场合

* UIImageView: 如果仅仅是显示图片,不需要监听图片的点击

* UIButton: 既要显示图片,又要监听图片的点击

2> 相同:能显示图片

3> 不同点

* UIButton能处理点击事件, UIImageView不能处理点击事件

* UIButton既能显示图片, 又能显示文字

* UIButton能同时显示两张图片

* UIButton继承自UIControl, 因此默认就能处理事件  UIButton --> :UIControl -->:UIView

* UIImageView继承自UIView, 因此默认就不能处理事件 UIImageView --> :UIView

4> 如何选择

UIButton:需要显示图片,点击图片后需要做一些特定的操作

UIImageView:仅仅需要显示图片,点击图片后不需要做任何事情

4.键盘的显示与隐藏

resignFirstResponder

当叫出键盘的那个控件(第一响应者)调用这个方法时,就能退出键盘

endEditing

只要调用这个方法的控件内部存在第一响应者,就能退出键盘

5.常用按钮的状态

normal(普通状态)

默认情况(Default)

对应的枚举常量:UIControlStateNormal

highlighted(高亮状态)

按钮被按下去的时候(手指还未松开)

对应的枚举常量:UIControlStateHighlighted

disabled(失效状态,不可用状态)

如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击

对应的枚举常量:UIControlStateDisabled

6.一个UIColor代表一种颜色,通过UIColor的类方法,可以获得很多常用的颜色

+ (UIColor *)blackColor;      // 0.0 white 黑色

+ (UIColor *)darkGrayColor;   // 0.333 white 深灰色

+ (UIColor *)lightGrayColor;  // 0.667 white 亮灰色

+ (UIColor *)whiteColor;      // 1.0 white 白色

+ (UIColor *)grayColor;       // 0.5 white 灰色

+ (UIColor *)redColor;        // 1.0, 0.0, 0.0 RGB 红色

+ (UIColor *)greenColor;      // 0.0, 1.0, 0.0 RGB 绿色

+ (UIColor *)blueColor;       // 0.0, 0.0, 1.0 RGB 蓝色

+ (UIColor *)cyanColor;       // 0.0, 1.0, 1.0 RGB 青色

+ (UIColor *)yellowColor;     // 1.0, 1.0, 0.0 RGB 黄色

+ (UIColor *)magentaColor;    // 1.0, 0.0, 1.0 RGB 品红

+ (UIColor *)orangeColor;     // 1.0, 0.5, 0.0 RGB 橙色

+ (UIColor *)purpleColor;     // 0.5, 0.0, 0.5 RGB 紫色

+ (UIColor *)brownColor;      // 0.6, 0.4, 0.2 RGB 棕色

+ (UIColor *)clearColor;      // 0.0 white, 0.0 alpha 清除颜色(空色)

7. 一个UIImage对象代表一张图片,一般通过imageNamed:方法就可以通过文件名加载项目中的图片

(文件名可以省略扩展名)

UIImage *image = [UIImage imageNamed:@"btn_01"];

8. NSBundle

1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹

2> 利用mainBundle就可以访问软件资源包中的任何资源

9. 将属性放在get方法中初始化的方式,称为“懒加载”\”延迟加载”

10. UIImageView帧动画相关属性和方法

@property(nonatomic,copy) NSArray *animationImages;

需要播放的序列帧图片数组(里面都是UIImage对象,会按顺序显示里面的图片)

@property(nonatomic) NSTimeInterval animationDuration;

帧动画的持续时间

@property(nonatomic) NSInteger animationRepeatCount;

帧动画的执行次数(默认是无限循环)

- (void)startAnimating;

开始执行帧动画

- (void)stopAnimating;

停止执行帧动画

- (BOOL)isAnimating;

是否正在执行帧动画

11. UIImage的2种加载方式

方式一:有缓存(图片所占用的内存会一直停留在程序中)

+ (UIImage *)imageNamed:(NSString *)name;

name是图片的文件名

方式二:无缓存(图片所占用的内存会在一些特定操作后被清除)

+ (UIImage *)imageWithContentsOfFile:(NSString *)path

- (id)initWithContentsOfFile:(NSString *)path;

path是图片的全路径

  例如:

 1.1 定义 UIImageView

UIImageView *imgView = [[UIImageView alloc] initWithFrame:[UIScreen mainScreen].bounds];

1.2 定义 NSMutableArray 保存所有图片

NSMutableArray *animationImgsArrM = [[NSMutableArray alloc] init];

int num = 40;

for(int i = 0 ; i <= num  ; i++ ){

图片的名称

NSString *imgName = [NSString stringWithFormat:@"%@_%02d.jpg", imgView, i ];

在创建比较小的,并且常用的图片时,可以使用imageNamed:方法创建

UIImage *img = [UIImage imageNamed:imgName];

如果创建的图片很多,并且比较大的话,应该使用这种方式创建

NSString *filePath = [[NSBundle mainBundle] pathForResource:imgName ofType:nil];

UIImage *img = [[UIImage alloc]initWithContentsOfFile:filePath];

把图片添加到数组中

[animationImgsArrM addObject:img];

}

12. 用模型取代字典的好处

1> 使用字典的坏处:

一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key时,编译器不会有任何友善提示,需要手敲

dict[@"name"] = @"Jack";

NSString *name = dict[@"name"];

手敲字符串key,key容易写错

Key如果写错了,编译器不会有任何警告和报错,造成设错数据或者取错数据

2> 使用模型的好处:

所谓模型,其实就是数据模型,专门用来存放数据的对象,用它来表示数据会更加专业

模型设置数据和取出数据都是通过它的属性,属性名如果写错了,编译器会马上报错,因此,保证了数据的正确性

使用模型访问属性时,编译器会提供一系列的提示,提高编码效率

app.name = @"Jack”;

NSString *name = app.name;

13. instancetype

instancetype在类型表示上,跟id一样,可以表示任何对象类型

instancetype只能用在返回值类型上,不能像id一样用在参数类型上

instancetype比id多一个好处:编译器会检测instancetype的真实类型

14. Xib文件可以用来描述某一块局部的UI界面

Xib文件的加载

方法1

NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"AppView" owner:nil options:nil];

这个方法会创建xib中的所有对象,并且将对象按顺序放到objs数组中

方法2

bundle参数可以为nil,默认就是main bundle

UINib *nib = [UINib nibWithNibName:@"MJAppView" bundle:[NSBundle mainBundle]];

NSArray *objs = [nib instantiateWithOwner:nil options:nil];

在开发阶段,面向开发者的是xib文件; 当把应用装到手机上时,xib文件就会转为nib文件

15. Xib和storyboard对比

1> 共同点:

都用来描述软件界面

都用Interface Builder工具来编辑

2> 不同点

Xib是轻量级的,用来描述局部的UI界面

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

16. UILabel的常见设置

@property(nonatomic,copy)   NSString           *text;

显示的文字

@property(nonatomic,retain) UIFont             *font;

字体

@property(nonatomic,retain) UIColor            *textColor;

文字颜色

@property(nonatomic)        NSTextAlignment    textAlignment;

对齐模式(比如左对齐、居中对齐、右对齐)

17. UIFont --> UIFont代表字体,常见创建方法有以下几个:

+ (UIFont *)systemFontOfSize:(CGFloat)fontSize;   系统默认字体

+ (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize;  粗体

+ (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize;  斜体

18. UIButton的常见设置

- (void)setTitle:(NSString *)title forState:(UIControlState)state;

设置按钮的文字

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;

设置按钮的文字颜色

- (void)setImage:(UIImage *)image forState:(UIControlState)state;

设置按钮内部的小图片

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;

设置按钮的背景图片

btn.titleLabel.font = [UIFont systemFontOfSize:13];

设置按钮的文字字体(需要拿到按钮内部的label来设置)

- (NSString *)titleForState:(UIControlState)state;

获得按钮的文字

- (UIColor *)titleColorForState:(UIControlState)state;

获得按钮的文字颜色

- (UIImage *)imageForState:(UIControlState)state;

获得按钮内部的小图片

- (UIImage *)backgroundImageForState:(UIControlState)state;

获得按钮的背景图片

19.使用xib封装一个自定义view的步骤

1> 新建一个继承UIView的自定义view,假设类名叫做(AppView)

2> 新建一个MJAppView.xib文件来描述MJAppView内部的结构

3> 修改UIView的类型为MJAppView真是类型

4> 将内部的子控件跟MJAppView进行属性连线

5> MJAppView提供一个模型属性

6> 重写模型属性的set方法,因为在set方法中可以拿到外界传递的模型数据

7> 把模型数据拆开,分别设置数据到对应的子控件中

8> 提供一个创建MJAppView的类方法,将读取xib文件的代码屏蔽起来

  

  20. 清屏

  [[self.view subviews]makeObjectsPerformSelector:@selector(removeFromSuperview)];

  

UI- 基础控件零散知识点回归的更多相关文章

  1. UI基础控件—UIView

    1. 什么是UIView?     UIView :代表屏幕上的一个矩形区域,管理界面上的内容; 2. 创建UIview a.开辟空间并初始化视图(初始化时,给出视图位置和大小) b.对视图做一些设置 ...

  2. Cocos2d-JS项目之二:studio基础控件的使用

    在studio里把几个基础控件往场景文件一拖,然后导出json格式的资源文件 逻辑代码如下: var HelloWorldLayer = cc.Layer.extend({ sprite:null, ...

  3. [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)

    A.概述      在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能      1.按钮点击后,显示为“已下载”,并且不 ...

  4. Cocos2d-JS studio基础控件的使用

    在studio里把几个基础控件往场景文件一拖,然后导出json格式的资源文件 逻辑代码如下: 1 var HelloWorldLayer = cc.Layer.extend({ 2 sprite:nu ...

  5. QMUI UI库 控件 弹窗 列表 工具类 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系

    Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系 1. Swing Inspector是一个Java Swing/AWT用户界面分析和调试工具,功能与firebug类似 ...

  7. React Native环境搭建以及几个基础控件的使用

    之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...

  8. UI输入控件

    --UI输入控件 -- 输入控件 cc.uii.UIInput.new(table) --[[ 参数 table{ image 输入框图像,可以为图片名或者display.newScale9Sprit ...

  9. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

随机推荐

  1. java 中JFinal getModel方法和数据库使用出现问题解决办法

    JFinal getModel方法(从页面表单中获取Model对象)+数据库存储问题 一.getmodel方法 1.在JConfig配置类中的数据库映射(存储到数据库时需要此配置) public vo ...

  2. 入门拾遗 day2

    一.类和对象 对于Python,一切事物都是对象,对象基于类创建 学会查看帮助 type(类型名) 查看对象的类型dir(类型名) 查看类中提供的所有功能help(类型名) 查看类中所有详细的功能he ...

  3. UML_visio安装及使用

    安装:百度云安装visio 64bit 类图在visio当中 用例图                                 来自为知笔记(Wiz)

  4. xlrd,xlwt操作Excel实例

    把有合并单元格的信息读取出来,输出所在层数与位置 我要操作的Excel是这样的 要的到的是这样的效果 # -*- coding: utf-8 -*- import xlrd import xlwt r ...

  5. Firebug控制台详解(转)

    本文转自:http://www.ruanyifeng.com/blog/2011/03/firebug_console_tutorial.html 作者: 阮一峰 日期: 2011年3月26日 Fir ...

  6. python步长为负时的情况

    Sequence[start:end:step] python 的序列切片中,第一个:隔离了 起始索引 和 结束索引,第二个:隔离了 结束索引和 步长 step为正,则从左到右切片,如果 start ...

  7. Apache 配置参数

    参数说明 1.Global Environment 全局环境配置,决定Apache服务器的全局参数3.Virtual Hosts—虚拟主机,虚拟主机不能与Main Server主服务器共存,当启用了虚 ...

  8. ubuntu 安装pip

    apt-get install python3-pip

  9. Windows Server 2008 R2 FTP无法从外部访问的解决方法

    在Windows Server 2008 R2中配置好FTP服务器后,可以在本机访问,但是无法从另一台电脑访问.原因就是在于防火墙没有配置好. 1.首先检查服务器管理器中的入站规则,确保已启用FTP服 ...

  10. hbase 异常

    1.org.apache.hadoop.hbase.ipc.CallTimeoutException a.出现情况描述:使用java API进行hbase数据的scan操作,发现有的数据可以scan到 ...