要调整大小的UIButton
问题描述:
我在应用程序中使用UIButton。该按钮标题根据用户选择动态显示。现在我必须根据标题内容调整按钮宽度。 我正在计算字符串长度并将其分配给按钮的宽度。要调整大小的UIButton
该按钮按照标题调整大小,但问题如下, 1.如果首先显示内容较大的标题,之后显示内容较小的标题意味着该按钮被覆盖,则不会显示该按钮不删除以前构建的值。 2.看起来好像一个按钮重叠在另一个按钮上。
答
对我来说,这听起来好像你没有改变按钮的宽度,但你添加了另一个按钮。你是否在代码中添加按钮?如果你这样做,你可以发布代码吗?
一般来说,如果你想添加另一个按钮,最好给它一个标签,并在添加新的标签之前使用超级视图中的标签(即旧按钮)去除视图。
这应该是这个样子(从我的头顶):
UIButton * button = [[[UIButton alloc] init] autorelease];
button.tag = 100;
/* ...set up the button the way you would normally do... */
// remove old button
[[targetView viewWithTag: 100] removeFromSuperview];
// add new button
[targetView addSubview: button];
的标签用于标识视图的任意整数。在中心位置最好使用#define
您的标签。
答
假设,你有你的属性按钮,在你的类
-(void)changeTitleButtonWithValue:(NSString *)value
{
//get the value length (- (CGSize)sizeWithFont:(UIFont *)font)
size = [value sizeWithFont:yourFont];
self.button.frame = CGRectMake(x, y, size.width,size.height);
[self.button setTitle:value forState:UIControlStateNormal];
[self.button setTitle:value forState:UIControlStateHighlighted];
}
编辑:你有很多方法可以让你的按钮
- 你从Interface Builder的
- 添加来创建它作为一个插座
- 设置它的标签,并与UIButton getIt * myButton =(UIButton *)[self.view viewForTag :YOURTAG];
- 您可以从代码中创建它
- 实例属性
- 与标签同样的事情,但是当你创建:myButton.tag = YOURTAG;
是它的工作? – Francescu 2009-11-24 13:21:39