在这种情况下,我需要添加三个图像来制作按钮。
左桅杆部分,中间部分和右端部分有三个部分的图像。
图像的左侧部分 - > 图像的中间部分 - > 图像的右侧部分 - >
由于中间的文字,即按钮标题因按钮而异,我不想每次都创建一个不同尺寸的单独图像。我认为应该有一种方法可以合并这些按钮,根据提供的按钮宽度制作一个完整的按钮。
完成所有操作后,完整按钮应如下所示。
我希望你得到我需要的东西。请提出一些解决方案。
答案 0 :(得分:1)
要执行此操作,请使用可伸缩的图像。
您制作的图像将是左侧部分,中间部分和右侧部分的单个图像。
中间部分只需要一个像素宽。 (想象一下你的按钮在两端之间只有一个很小的空间会是什么样子。这就是你的形象。
然后你使用这段代码......
UIImage *image = [UIImage imageNamed:@"MyImage"];
UIImage *stretchableImage = [image stretchableImageWithLeftCapWidth:10 topCapHeight:0];
[myButton setBackgroundImage:stretchableImage forState:UIControlStateNormal];
然后,这将采用该窄图像,并在像素宽度(即本例中为10)之后取像素,并且它将重复该单个像素所需的次数以获得按钮的整个宽度。
无论按钮有多小或多大,您都可以在任何地方重复使用此单个图像。
答案 1 :(得分:-1)
您可以使用按钮标题标签设置文本,同时保持背景图像的通用。
例如: - 作品
[btn setTitle:@"something" forState:UIControlStateNormal];
[btn setTitle:@"something" forState:UIControlStateHighlighted];
[btn setTitle:@"something" forState:UIControlStateDisabled];
[btn setTitle:@"something" forState:UIControlStateSelected];
您可以使用设置图像到按钮 setImage:forState方法或setBackgrounImage:forState
例如: -
btnImage = [UIImage imageNamed:@“image.png”];
[btnTwo setImage:btnImage forState:UIControlStateNormal];
//或设置为背景图像
[btnTwo setBackgroundImage:[UIImage imageNamed:@"name.png"] forState:UIControlStateNormal];
您可以使用UIButton
的font属性使用图像中使用的不同字体例如: - btn.titleLabel.font = [UIFont systemFontOfSize:size];
//OR
您还可以使用类似的设置字体大小和字体样式。它比你要求的要多一点,但是嘿,这到底是什么......
[btn.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]];
并且......如果您感觉活泼,可以通过实现此代码然后检查xCode调试器中的输出来找到可用字体列表。
代码:
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
{
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:
[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; ++indFont)
{
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
}
}