其实就是改变image的frame,方法是写一个子类继承于UIButton,重写imageRectForContentRect:方法,需要改变位置的button使用该子类创建即可。
**需要注意的是,在设置image的时候使用的是setImage: forstate: **,setBackImage:forstate是没有效果的。具体原因我不了解
代码如下:
#import "TestButton.h"
@implementation TestButton
- (CGRect)imageRectForContentRect:(CGRect)contentRect { return CGRectMake(19, 12, 13, 21); }
@end
使用该类创建出的button的image的frame就是自己设置的值。
设置image的方法
[self.testButton setImage:[UIImage imageNamed:@"icon-test"] forState:UIControlStateNormal];