// 比如點擊“向上”按鈕,讓按鈕的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;
通過
屬性可以修改控件的位置、尺寸不需要計算形變之后的結果
代碼添加控件
// 創建一個自定義的按鈕UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];// 默認狀態的背景[btn setBackgroundImage:[UIImage imageNamed:@"btn_01"] forState:UIControlStateNormal];// 默認狀態的文字[btn setTitle:@"點我啊" forState:UIControlStateNormal];// 默認狀態的文字顏色(有哪些顏色可以直接點UIColor頭文件查看)[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
例如:
// 視圖加載完成調用的方法,通常視圖控制器的初始化工作,在此執行!// 一定不要忘記調用父類的實現方法- (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;}
修改大小。角度
// 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);
新聞熱點
疑難解答