我创建了UIButton的子类,我想设置一个“填充”。我希望按钮的框架每侧的宽度始终比文本宽15个像素。
在drawRect方法中,我将按钮的框架设置为比文本宽度宽30 px。但是当我尝试这样做时,框架根本没有调整。改变我的uibutton框架后,这个框架是否会被调整?如何调整框架以设置填充?
这是我的代码:
- (void)drawRect:(CGRect)rect{
[self setBackgroundImage:[[UIImage imageNamed:@"submitBtn.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:0] forState:UIControlStateNormal];
[self setFrame:CGRectMake(rect.origin.x, rect.origin.y-90, self.titleLabel.frame.size.width + 30, self.frame.size.height)];
}
感谢您的回答!!
答案 0 :(得分:2)
您应该覆盖setTitle:forState:
方法并在那里调整框架。您还应将背景图像设置为drawRect:
以外的其他位置。一个好地方是initXXX
方法。
在drawRect:
中你应该做的唯一事情实际上是根据当前状态为视图渲染内容。 drawRect:
中不应更改任何州。