当前位置: 代码迷 >> 综合 >> iOS - IBAction、IBOutlet以及UIVIew
  详细解决方案

iOS - IBAction、IBOutlet以及UIVIew

热度:84   发布时间:2023-12-14 18:46:59.0

IBAction和IBOutlet

IBAction是返回值,相当于void,只有返回值是IBAction的方法,才能和storyboard中的控件进行连线
这里写图片描述
只有声明为IBOutlet的属性,才能跟storyboard中的控件进行连线
这里写图片描述
为了保证控件不被其他地方修改,让其变成私有变量,将它放在.m文件中声明
这里写图片描述
使用weak的原因是已经有强指针指向他


UIView

  • 控件:屏幕上所有的UI元素都叫控件
  • 属性:尺寸,位置,背景色

    共同属性都抽取到UIView中

  • 每一个控件都是一个容器,比较常见的还是用UIVIew作为容器
    • 控制器是不可见的
    • 每一个控制器都有一个UIVIew
    • 能够看到的是View
    • 每一个控制器中都有一个UIVIew的属性
    • 控制器中管理的所有子控件都是该空间的子控件

常见方法

// 添加一个子控件view
- (void)addSubview:(UIVIew *)view;
// 将自己从父控件中移除
- (void)removeFromSuperview;
// 根据一个tag标识找出一个对应的控件(一般都是子控件)
- (UIView *)viewWithTag:(NSInteger)tag;

常见属性

// 控件矩形框在父控件中的位置和尺寸,以左上角为坐标原点
@property(nonatomic) CGRect frame;
label.frame = CGRectMake(0, 0, 100, 100);// 修改方式1
self.label.frame = CGRectMake(200, 100, 100, 50);
// 修改方式2
// 结构体是值传递,不是地址传递
CGRect frame = self.label.frame;
frame.origin.x -= 100;
frame.size.width += 50;
self.label.frame = frame;
// 控件矩形框的位置和尺寸,以自己左上角为坐标原点,bounds的x、y一般为0
@property(nonatomic) CGRect bounds;
//控件中点的位置
@property(nonatomic) CGPoint    center; 

viewDidLoad

/**1. 系统调用2. 控制器的View加载完毕的时候调用3. 控件的初始化,数据的初始化(懒加载)*/
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.
}

didReceiveMemoryWarning

/**1. 系统调用2. 当控制器就收到内存警告调用3. 取出一些不必要的内存,取出耗时的内存*/
- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}