设计为了美观,按钮有时设计的太小,这么一来是好看了,但是按钮不好点中了。以前有很多解决方法,如用hitTest等方法。都比较复杂。后来我发现一个简单的方法。原理就是UIButton setImage时,如果image比按钮小,就会自动居中显示。所以很简单,只用将按钮的frame不按图的大小设,而是设大一点,就可以增大按钮的选区了。
如下:
UIButton* btn = [UIButton buttonWithType:UIButtonTypeCustom];
//按钮的frame比图大,以扩大按钮的选区。
btn = CGRectMake(239, 0, 60, 44);
//setImage后,图会自动居中。注意,不能用setBackgroundImage。
[btn setImage:[UIImage imageNamed:@"a-image"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(toggle:) forControlEvents:UIControlEventTouchUpInside];
扩大UIButton的选区
时间: 2024-10-18 08:40:39