2016-06-22 2 views
1
selectgroup = [UIButton buttonWithType:UIButtonTypeCustom]; 
selectgroup.frame = CGRectMake(screenWidth/4-23/2, 158, 23, 23) ; 
selectgroup.hidden = NO; 
UIImage *selectgroupimg = [UIImage imageNamed:@"groupicon2.png"]; 
[selectgroup setBackgroundImage:selectgroupimg forState:UIControlStateNormal]; 
//[selectgroup setcontentEdgeInsets : UIEdgeInsetsMake(0, 150, screenWidht/2, 30)]; 
[selectgroup addTarget:self action:@selector(selectgroup:) forControlEvents:UIControlEventTouchUpInside]; 
[self.view addSubview:selectgroup]; 

Я хочу увеличить площадь нажатия кнопки до (0,150,screenwidth/2,30). Я постарался установить contentEdgeInsets и imageEdgeinsets, но оба не работают.Как добавить зону касания кнопки?

Как я могу это сделать?

+0

Что вы подразумеваете под областью щелчка? Вы можете нажать любую кнопку, на которой он будет вызывать свое действие. –

+0

увеличить зону касания –

+0

Вы хотите увеличить ширину кнопки? –

ответ

1

Вам нужно установить изображение как (Button собственности setImage и setBackgroundImage как разные)

UIImage *btnImage = [UIImage imageNamed:@"image.png"]; 
[buttonObject setImage:btnImage forState:UIControlStateNormal];forState:UIControlStateNormal]; 

затем Установите рамку кнопки, которую вы хотите

buttonObject.frame = CGRectMake(0,150,screenwidth/2,30); 
0

Подкласс UIButton, или категория/расширение ,, и использовать его как это:

-(BOOL) pointInside:(CGPoint)point withEvent:(UIEvent *)event { 
    return CGRectContainsPoint(UIEdgeInsetsInsetRect(self.bounds, UIEdgeInsetsMake(-44, -44, -44, -44)), point); 
} 
+0

что такое self.bounds? –

+0

@WaitakJong self = ваша кнопка. Вы должны добавить этот метод в подкласс UIButton, этот метод - ovvriding UIButton. – MCMatan

Смежные вопросы