2011-08-09 172 views
2

我想为我的按钮做一个新的布局。自定义UIButton

实际上,当您使用图像和标题设置自定义UIButton时,两个元素排成一行。 但是,在我看来,我需要在图像下有标题。 我尝试使用“Edge Inset”属性来执行此操作。

有一种方法可以做到这一点与UIButton的子类? 以及如何做到这一点?

感谢您的支持!

Gwennin

编辑:

我已经喜欢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; 
} 

谢谢大家!

+0

具有相同创建一个按钮图像,但更大的框架空间垂直,然后使用此答案的代码绘制文本:http://stackoverflow.com/questions/6992830/how-to-write-text-on-image-in-objective-c-iphone/6993766#6993766 – Jano

回答

0

你也可以继承UIControl进行自定义按钮。

+0

谢谢!我要去尝试一下。 – Gwennin

0

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

你可以做这样的事情 -

enter image description here

+0

感谢您的提议,但我无法对图片进行... – Gwennin

0

简单的解决办法就是添加图像和标签进行正常的标签userinteractionenabled = NO,然后添加自定义类型的buuton添加它既图像和labels..otherwise UIConrol广告米凯尔说..