自定义 UIButton

Posted

技术标签:

【中文标题】自定义 UIButton【英文标题】:Custom UIButton 【发布时间】:2011-08-09 12:55:48 【问题描述】:

我正在尝试为我的按钮创建新布局。

实际上,当您使用图像和标题设置自定义UIButton 时,这两个元素在一条线上。 但是,在我看来,我需要在图片下方加上标题。 我尝试使用“Edge Inset”属性来实现它,它可以工作。

有没有办法使用UIButton 的子类来做到这一点? 又该怎么做呢?

提前感谢!

格温宁

编辑:

我已经像 Jano 提出建议 in comment

生成背景图片的代码:

+(UIImage*)drawText:(NSString*)text inImage:(UIImage*)image 

UIFont *font = [UIFont boldSystemFontOfSize:16];
CGSize size = CGSizeMake(200, 200);
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(100 - (image.size.width / 2), 0, image.size.width, image.size.height)];
CGRect rect = CGRectMake(100 - ([text length] * 8) / 2, image.size.height, 200, 200);
[[UIColor whiteColor] set];
[text drawInRect:CGRectIntegral(rect) withFont:font];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return newImage;

感谢大家!

【问题讨论】:

创建一个具有相同图像但垂直框架空间更大的按钮,然后使用此答案中的代码绘制文本:***.com/questions/6992830/… 【参考方案1】:

您可以继承UIControl 来制作自定义按钮。

【讨论】:

【参考方案2】:

我建议你在这里不需要子类 UIButton,你可以制作一个底部透明的图像,你可以在其中显示按钮的标题并将按钮的标题对齐到底部,这样你就可以显示标题为UIButton 的底部。

你可以这样做 -

【讨论】:

【参考方案3】:

简单的解决方案是添加图像和标签使标签 userinteractionenabled = NO ,然后添加自定义类型的按钮将其添加到图像和标签上..否则 UIConrol ad michail 说..

【讨论】:

以上是关于自定义 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

自定义 UIButton 圆角

未调用自定义 UIButton 的 setIsSelected 方法

ViewController 不符合自定义 UIButton 类

自定义 UIButton - IBAction 不起作用

如何使用代码为 UIButton 创建自定义图像?

自定义 UIButton + 子视图 = 无事件