UI基础控件整理版

来源:互联网 发布:mac照片上传icloud 编辑:程序博客网 时间:2024/05/22 06:07

自己创建的对象要强引用,strong,即代码创建需要用strong。

如果使用storyboard创建,就要用weak,该对象是由系统创建的,由系统回收,不需要让计数器+1.

OutletCollection是strong,是因为数组是我们自己创建的,用来存储数组的,但是里面存储的按钮是weak的,是系统创建的。

控制器自带的几个方法,

-(void)viewWillAppear:(BOOL)animated{};

-(void)viewDidDisappear:(BOOL)animated{};

-(void)viewWillDisappear:(BOOL)animated{};

-(void)viewDidDisappear:(BOOL)animated{};

OC中所有角度相关的都是弧度。M_PI_4 pi除以4

UILabel

核心属性示例:

label.frame = CGRectMake(0,0, self.tableView.frame.size.width,40);

//字体

label.font = [UIFontitalicSystemFontOfSize:24];

label.textColor = [UIColorredColor];

//阴影

label.shadowColor = [UIColorgreenColor];

label.shadowOffset = CGSizeMake(1, 1);

//居中

label.textAlignment = NSTextAlignmentCenter;

 

 

 

UIButton

按钮的四个状态

forState: 这个参数的作用是定义按钮的文字或图片在何种状态下才会显现

enum {

UIControlStateNormal = 0, 常规状态显现

UIControlStateHighlighted = 1 << 0, 高亮状态显现

UIControlStateDisabled = 1 << 1, 禁用的状态才会显现

UIControlStateSelected = 1 << 2, 选中状态

};

使用如下方法改变button里的文字。

[self.myButton setTitle:<#(nullable NSString*)#> forState:<#(UIControlState)#>];

用如下方法来回切换按钮的是否被选择状态。

self.button.selected = !self.button.selected;

用如下方法来设置按钮是否可点击。

self.myButton.enabled =YES;

谁发生了事件,谁就是sender,类似self。

使用Outlet Collection的时候,数组里存储的对象是有顺序的,按照我们的连线顺序来确定,所以连线的时候要一个一个的连线,不能偷懒,这样会确定按钮的顺序。

Outlet collection

@property (strong,nonatomic) IBOutletCollection(UIButton)NSArray *allButtons;

确定某个按钮用

self.allButtons[2]

调用方法,取得点击的按钮的数组下标

- (IBAction)allClickButton:(id)sender {

    NSInteger*index = [self.allButtonsindexOfObject:sender];

    NSLog(@"%ld",index);

}

 

UIStepper

作用:用于记录一个可以进行精确调整的数值,只有存储功能,没有显示数值这个功能,所以为了看到存储的这个数值,一般都会搭配一个label来显示。

核心属性 :value

重要事件:valueChanged

 

UISlider

作用:用于记录一个可变化的数值,该数值修改时通过滑动动作的大小,不是很能准确的控制数值变化的过程

核心属性 :value

重要事件:valueChanged

 

UISwitch

作用:用于记录是或否的一个状态

核心属性 :on     (BOOL)

重要事件:valueChanged

使用如下方法改变value,会有动画效果,如果直接对on赋值,点击时没有动画效果,一般不使用。

 [self.mySwitch setOn:<#(BOOL)#>animated:<#(BOOL)#>];

 

UITextField

作用:用于记录一个可变化的数值,该数值修改时通过滑动动作的大小,不是很能准确的控制数值变化的过程用于记录用户输入的文本

核心属性 :text  (NSString)

重要事件:valueChanged

如何关闭键盘:

关闭方法一:

让textField放弃第一响应者。

成为第一响应者:[self.mytext becomeFirstResponder];

放弃第一响应者:[self.mytext resignFirstResponder];

关闭方法二:设置文本框所在的父视图结束编辑状态即可(结束编辑状态:系统会遍历父视图下所有的文本框,并且将所有文本框都设置为放弃第一响应者身份)(如果一个视图里有很多文本框,又不想判断哪个文本框是第一响应者的话,这个方法优势极为明显,一般采用这个)

结束父视图的编辑状态:[self.view endEditing:YES];

 

关闭键盘的时机:

时机一:点击键盘右下角的按键,为文本框创建一个事件 Did End On Edit,对这个事件连线。

时机二:点击屏幕空白处的时候,产生事件。触摸空白处的时候,为了让控制器响应,touches开头的方法都是控制器处理的。

-(void)touchesBegan:(NSSet<UITouch *>*)touches withEvent:(UIEvent *)event{};

两个与用户交互的界面

UIAlertView警告框,ios9之后改用UIAlertController,用户并不喜欢弹框,除非重要性的信息,否则一般不用弹框。模态形式显示。

模态窗口:如果用户不关闭,就无法继续操作

 

UIActionSheet操作表,出现在屏幕底部。

 

UIImageView

作用:存放图片

核心属性 :frame

重要事件:initWithImage

使用要点:使用的图片一定要放在图片库里,如果不放的话就会加载不出来。这个一定要做

Assets.xcassets(把图片拖到这个里面,要不就放到根目录,不然应用找不到路径)

 

UIScrollView

作用:

核心属性 :frame大小

contentSize

contentOffset距离内容左顶点的偏移量,可读可写,手动更改,让视图显示某一个部分。

使用要点:a、可以添加多个子视图。

b、添加完子视图之后,需要将UIScrollView添加到self.view中。

c、当想处理用户针对滚动视图做出的动作时,设置滚动视图的代理,让代理遵守协议,然后代理响应什么动作,就去协议中找一个合适的方法实现即可。

重要事件:

 

UIPageControl

作用:

核心属性 :frame

重要事件:initWithImage

使用要点:要放在ViewController上,不要放在ScrollView上,

0 0