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
屬性可以修改控件的尺寸
 
// 比如點擊“向上”按鈕,讓按鈕的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);

 

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM