1

我做了一个 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)]; 
}

感谢您的回答!

4

1 回答 1

2

您应该覆盖该setTitle:forState:方法并在那里调整框架。您还应该将背景图像设置在drawRect:. 一个好地方将是initXXX方法。

您唯一应该做的drawRect:就是根据视图的当前状态实际渲染视图的内容。不应更改任何状态drawRect:

于 2012-11-01T21:59:39.460 回答