iOS基础 - UIButton - UIImageView

时间:2022-05-22 14:54:02

封装思想:将相同的重复东西保存到方法里,不同的东西用参数代替。不相同的东西交给方法调用者,相同东西自己搞定。

一、UIButton和UIImageView的区别

1.显示图片

1> UIImageView只能显示一种图片(图片默认会填充整个UIImageView)  image\setImage:

2> UIButton能显示2种图片

* 背景 (背景会填充整个UIButton)  setBackroungImage:forState:

* 前置(覆盖在背景上面的图片,按照之前的尺寸显示)  setImage:forState:

* 还能显示文字

2.点击事件

1> UIImageView默认是不能响应点击事件

2> UIButton能响应点击事件 : addTarget:action:forControlEvents:

3.使用场合

1> UIImageView : 只显示图片,不监听点击,点击了图片后不做任何反应

2> UIButton : 既显示图片,又监听点击,点击了图片后做一些其他事情

4.继承结构

1> UIButton之所以能添加监听器来监听事件,是因为它继承自UIControl

2> UIImagevIew之所以不能添加监听器来监听事件,是因为它直接继承自UIView

二、UIImageView的帧动画

@property(nonatomic,copy) NSArray *animationImages; // 设置需要播放的图片(到时会按照数组顺序播放)

@property(nonatomic) NSTimeInterval animationDuration; // 动画的持续时间

@property(nonatomic) NSInteger animationRepeatCount;  // 动画的执行次数(默认情况下是无限重复执行)

- (void)startAnimating; // 开始动画

- (void)stopAnimating;  // 停止动画

- (BOOL)isAnimating; // 是否正在执行动画

三、格式符补充

%03d : 每个整数占据3个位置,多出的位置用0填充

比如:

* [NSString stringWithFormat:@"%03d", 0];  返回的是@"000"

* [NSString stringWithFormat:@"%03d", 1];  返回的是@"001"

* [NSString stringWithFormat:@"%03d", 12];  返回的是@"012"

* [NSString stringWithFormat:@"%03d", 123];  返回的是@"123"

四、加载图片的两种方式

1.有缓存

UIImage *image = [UIImage imageNamed:@"a.png"]

2.无缓存

// 全路径

NSString *path = [[NSBundle mainBundle] pathForResource:@"a.png" ofType:nil];

// path是a.png的全路径

UIImage *image = [[UIImage alloc] initWithContentsOfFile:path]

五、UIToolbar的简单使用

1.UIToolbar内部只能放UIBarButtonItem

六、子控件的操作

1.添加子控件 : addSubview:

2.从父控件中移除 : removeFromSuperview

七、动画

1.头尾式

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:1.0];

// 需要执行动画的代码....

[UIView commitAnimations];

2.block式

[UIView animateWithDuration:1.0 animations:^{

// 需要执行动画的代码....

} completion:^(BOOL finished) { // 动画执行完毕后会自动调用这个block(这个代码段)

}];