当我们对UIButton进行自定义背景图形(Background),并且使用状态设置(State Config),即default和Highlighted的设置的时候。当这两种状态的图形的原尺寸不一致时,会在进行事件click移动frame时,出现不动作的现象。此时只需要将两种状态图形大小设置为一致即可;或者只选择一种状态进行设置。
代码:
- (IBAction)run:(id)sender {
NSLog(@"%@",sender);
CGRect frame = _btn.frame;
switch ([sender tag]) {
case 1:
frame.origin.x -= 10;
break;
case 2:
frame.origin.y -= 10;
break;
case 3:
frame.origin.x += 10;
break;
case 4:
frame.origin.y += 10;
break;
default:
break;
}
_btn.frame = frame;
NSLog(@"%@",_btn);
}
//此代码是利用了tag属性来对btn进行上下左右的移动。四个按钮分别设置tag属性,从1到4。