我想将一个图像作为背景图像添加到uibutton。我想拉伸图像以适应按钮宽度。用户将在运行时输入按钮的标题。因此,根据用户输入的文本宽度,它将拉伸图像。超出按钮的某个宽度,按钮将不会进一步拉伸,而是文本将被截断。这是我的代码
CGSize suggestedSize = [self.strButtonTitle sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE]];
NSLog(@"Widht:- %f",suggestedSize.width);
UIButton *customButton = [UIButton buttonWithType:UIButtonTypeCustom];
customButton.frame = CGRectMake(50, 200, 75, 40);
CGRect frame = customButton.frame;
frame.size.width = suggestedSize.width;
if (frame.size.width > 75) {
frame.size.width = 75;
customButton.frame = frame;
}
else {
frame.size.width +=5;
customButton.frame = frame;
}
NSLog(@"Custom button width:- %f",customButton.frame.size.width);
UIImage *buttonImageNormal = [UIImage imageNamed:BUTTON_IMAGE];
UIImage *stretchableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0];
[customButton setBackgroundImage:stretchableButtonImageNormal forState:UIControlStateNormal];
[customButton setTitle:self.strButtonTitle forState:UIControlStateNormal];
[customButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.view addSubview:customButton];
UIBarButtonItem *barButton = [[UIBarButtonItem alloc]initWithCustomView:customButton];
self.navigationItem.leftBarButtonItem = barButton;
[barButton release];
我的问题是,按钮宽度不会根据用户输入的文字增加。 如果用户输入ppppp,宽度不会增加到75,而是显示“pp ... p”
非常感谢任何帮助。感谢。
答案 0 :(得分:2)
问题在于测量弦的宽度。您正在通过以下方式测量弦的宽度。
CGSize suggestedSize = [self.strButtonTitle sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE]];
这里使用的是systemFont,其大小为FONT_SIZE。
但是,您没有为customButton文本标签设置相同的字体。它可以通过以下方式完成。
[customButton.titleLabel setFont:[UIFont systemFontOfSize:FONT_SIZE]];
希望它会有所帮助。