首页 > 代码库 > IOS Ui控件 修改位置和尺寸,代码添加控件
IOS Ui控件 修改位置和尺寸,代码添加控件
所有的UI控件最终都继承自UIView,UI控件的公共属性都定义在UIView中,
UIView的常见属性
UIView *superview; 获得自己的父控件对象
NSArray *subviews; 获得自己的所有子控件对象
NSInteger tag; 控件的ID(标识),父控件可以通过tag来找到对应的子控件
CGAffineTransform transform; 控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)
CGRect frame; 控件所在矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
CGRect bounds; 控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0)
CGPoint center; 控件中点的位置(以父控件的左上角为坐标原点)
常用的Button状态
normal(普通状态)
默认情况(Default)
对应的枚举常量:UIControlStateNormal
highlighted(高亮状态)
按钮被按下去的时候(手指还未松开)
对应的枚举常量:UIControlStateHighlighted
disabled(失效状态,不可用状态)
如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击
对应的枚举常量:UIControlStateDisabled
不同状态,可以设置Button不同的属性(颜色,文字,背景图片等)
修改控件位置
通过修改控件的frame属性就可以修改控件在屏幕上的位置和尺寸
通过以下属性可以修改控件的位置
frame.origin
center
通过
frame.size
bounds.size
属性可以修改控件的尺寸
?
1 2 3 4 5 6 7 8 9 | // 比如点击“向上”按钮,让按钮的y值减小即可 - ( IBAction )top:(UIButton *)sender { CGRect btnFrame = self .headBtn.frame; btnFrame.origin.y -= 10; self .headBtn.frame = btnFrame; } // 下面代码是错误的,OC语法规定:不允许直接修改对象的结构体属性的成员 self .headBtn.frame.origin.y -= 10; |
通过
属性可以修改控件的位置、尺寸不需要计算形变之后的结果
代码添加控件
?
1 2 3 4 5 6 7 8 | // 创建一个自定义的按钮 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; // 默认状态的背景 [btn setBackgroundImage:[UIImage imageNamed:@ "btn_01" ] forState:UIControlStateNormal]; // 默认状态的文字 [btn setTitle:@ "点我啊" forState:UIControlStateNormal]; // 默认状态的文字颜色(有哪些颜色可以直接点UIColor头文件查看) [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; |
例如:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | // 视图加载完成调用的方法,通常视图控制器的初始化工作,在此执行! // 一定不要忘记调用父类的实现方法 - ( void )viewDidLoad // 此方法是继承自父类的方法 { [ super viewDidLoad]; // 创建按钮控件 UIButton *btn = [[UIButton alloc] init]; // 设置控件的位置 btn.frame = CGRectMake(20, 20, 100, 100); // btn.backgroundColor = [UIColor redColor]; // 设置控件的文字 [btn setTitle:@ "按钮" forState:UIControlStateNormal]; // 设置控件文字的颜色 [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; UIImage *image = [UIImage imageNamed:@ "btn_01" ]; [btn setBackgroundImage:image forState:UIControlStateNormal]; [btn setTitle:@ "点我" forState:UIControlStateNormal]; // 设置按钮控件在普通状态下的字体颜色 [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; // 设置按钮空间在高粱状态下的背景图片 [btn setBackgroundImage:[UIImage imageNamed:@ "btn_02" ] forState:UIControlStateHighlighted]; // 将设置好的按钮空间添加到当前view中 [ self .view addSubview:btn]; // 按钮的监听方法 [btn addTarget: self action: @selector (click:) forControlEvents:UIControlEventTouchUpInside]; // 将.h中声明的属性headImageView与btn相关联 self .headImageView = btn; } |
修改大小。角度
?
1 2 3 4 5 6 7 | // MakeTranslation是基于对象初始位置做的形变 // self.delta -= 20; // NSLog(@"%d", self.delta); // self.headImageView.transform = CGAffineTransformMakeTranslation(0, self.delta); // Translate是基于transform参数做的形变,实际效果就是一个累加的位移效果 self .headImageView.transform = CGAffineTransformTranslate( self .headImageView.transform, 0, -20); self .headImageView.transform = CGAffineTransformScale( self .headImageView.transform, 2.0, 1.0); |
// 在OC中,所有跟角度相关的数值,都是弧度值,180° = M_PI
// 正数表示顺时针旋转
// 负数表示逆时针旋转
self.headImageView.transform = CGAffineTransformRotate(self.headImageView.transform, -M_PI_4);
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。