創建按鈕思想
Snip20160625_3.png
每個按鈕用自己單獨的方法時argument選none當共用一個方法時argument選擇sender 共用一個方法輸出是調用send用來區別按鈕
NSLog(@"click - %@",sender);
由于位置經常變動而tag是不經常變動的,所以我們一般用tag屬性判斷點擊了那個按鈕
設置tag屬性點擊按鈕左邊屬性方法中將不同按鈕的tag值改為不同則可以通過判斷tag(我們自己設定的值)判斷點擊哪個按鈕
- (IBAction)click:(UIButton *)sender {
if (sender.tag ==10) {
NSLog(@"點擊添加按鈕");
}else if(sender.tag ==20){
NSLog(@"點擊刪除按鈕");
}
代碼創建按鈕
添加一個按鈕
//控制器的view創建完成才能在里面加東西
- (void)viewDidLoad {
[super viewDidLoad];//蘋果官方默認調用的,不用管
//1,創建一個加號按鈕
//設置按鈕為自定義類型
// UIButton *addBtn = [UIButton buttonWithType:UIButtonTypeCustom]等同于下面一行代碼
UIButton *addBtn = [[UIButton alloc]init];
//設置背景顏色
[addBtn setBackgroundImage:[UIImage imageNamed:@"add"] forState:UIControlStateNormal];
[addBtn setBackgroundImage:[UIImage imageNamed:@"add_highlighted"] forState:UIControlStateHighlighted];
[addBtn setBackgroundImage:[UIImage imageNamed:@"add_disabled"] forState:UIControlStateDisabled];
//創建按鈕坐標,如果按鈕沒有坐標則在屏幕上是沒有顯示的
addBtn.frame = CGRectMake(30, 30, 70, 60);
//設置tag值用于區分方法
addBtn.tag = 10;
//監聽按鈕
[addBtn addTarget:self action:@selector(add)
//調用方法添加按鈕進去
[self.view addSubview:addBtn];
}
-(void)add
{
NSLog(@"添加-----");
}
多個按鈕監聽一個方法
-(void)click:(UIButton *)Btn
{
NSLog(@"點擊了按鈕 - %@",Btn);
}
將傳入的方法名改為click:就可以了傳入方法名是為了區分按鈕
可以設置tag值用于區分不同按鈕
addBtn.tag = 10;
方法里的內容改為
if (Btn.tag ==10) {
NSLog(@"點擊添加按鈕");
}else if(Btn.tag ==20){
NSLog(@"點擊刪除按鈕");
}
(企業級開發不用tag)
可以將添加按鈕封裝成一個函數這樣添加一個按鈕調用一次這個函數就可以了
-(void) addButtenWithImage:(NSString *)image highImage:(NSString *)highImage disableImage:(NSString *)disableImage frame:(CGRect)frame tag:(NSInteger)tag action:(SEL)action
{
UIButton *btn = [[UIButton alloc]init];
[btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];
[btn setBackgroundImage:[UIImage imageNamed:disableImage] forState:UIControlStateDisabled];
btn.frame = frame;
btn.tag = tag;
[btn addTarget:self action:action forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
調用這個函數的方法是下面的方法,只需要將變量傳送過去就可以
[self addButtenWithImage:@"add" highImage:@"add_highlighted" disableImage:@"add_disabled" frame:CGRectMake(30, 30, 70, 60) tag:10 action:@selector(add)];