UIButton在開發(fā)中的使用量是不用多說的找都,但是給button添加方法捏膨,再次還是有必要說一下的addTarget...
,好吧驯妄,別打荷并,我不說了!
通過for循環(huán)添加多個(gè)button青扔,給button添加不同的點(diǎn)擊事件
方法一:通過給button賦不同的tag值
凡是遇到這種需求時(shí)源织,我都是通過給button賦不同的tag值,先添加同一個(gè)點(diǎn)擊事件微猖,然后根據(jù)不同的tag值來做不同的處理谈息,代碼如下:
- (void)addButton
{
for (int i = 0; i < 10; i++) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.tag = 100 + i;
[button addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:button];
}
}
![Uploading 頂部圖片拉伸_502545.gif . . .]
- (void)click
{
//此處根據(jù)不同的tag值,作出不同的點(diǎn)擊事件
}
方法二:把方法名放到數(shù)組里面
但是時(shí)間久了凛剥,就不想通過if這些判斷添加不同的方法了侠仇;找到了NSSelectorFromString
這個(gè)方法,我們需要把方法名添加到數(shù)組里面,然后再創(chuàng)建button時(shí)賦不同的方法逻炊;代碼如下:
- (void)addButton
{
NSArray *array = @[@"test1", @"test2", @"test3"];
for (int i = 0; i < array.count; i++) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self action:NSSelectorFromString(array[i]) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:button];
}
}
- (void)test1 {
}
- (void)test2 {
}
- (void)test3 {
}
第二種方法我個(gè)人更傾向一些互亮;如果各位有好的方法,希望能夠交流余素;如果里面有一些不好的地方豹休,希望指正!