如何在UIButton中仅为标题的某个部分设置图像

时间:2014-07-25 10:13:46

标签: ios uiimageview uibutton uikit

我有一个有标题的UIButton。 将其视为Thu 20。 有一个图像被设置为按钮的背景,此图像的宽度调整大小,内容模式是宽高比。所以它出现在完整按钮上。 我的问题: 我只需要“20”部分的图像而不是整个“Thu 20”。 如果您看到iPad日历,您将明白这一点。 我该怎么做? 感谢

3 个答案:

答案 0 :(得分:0)

除非像某个属性字符串之类的东西具有在某些文本周围放置矩形的功能,否则我建议您创建一个处理此问题的自定义视图:

你需要一个除了2个字符串,一个普通字符串和矩形字符串之外的视图。然后插入一个普通标签,设置文本,调用sizeToFit。然后添加第二个标签并执行与第一个标签相同的操作,但最后将其放在第一个标签旁边。然后将图像视图添加到符合标签尺寸的标签上。然后调整整个视图的大小以适应它上面的所有视图。现在,您可以将此自定义标签添加到按钮或任何您想要的位置......

答案 1 :(得分:0)

我建议你放置一个包含你的图像的图像,然后在你的" 20"上放置一个标签。然后放置一个没有backGround颜色的自定义UIButton,并且两个顶部都没有图像

答案 2 :(得分:0)

通过一些工作,您可以覆盖其中一种UIButton方法,将图像放在正确的位置。使用UILabel中的方法确定“20”的坐标将给出图像的位置。

class UIButton {

    // these return the rectangle for the background (assumes bounds), the content (image + title) and for the image and title separately. the content rect is calculated based
    // on the title and image size and padding and then adjusted based on the control content alignment. there are no draw methods since the contents
    // are rendered in separate subviews (UIImageView, UILabel)

    open func backgroundRect(forBounds bounds: CGRect) -> CGRect

    open func contentRect(forBounds bounds: CGRect) -> CGRect

    open func titleRect(forContentRect contentRect: CGRect) -> CGRect

    open func imageRect(forContentRect contentRect: CGRect) -> CGRect
}

有关这些方法的详情,请参阅“获取维度”下的Apple Documentation