【发布时间】:2012-12-14 20:57:04
【问题描述】:
我正在尝试创建一个非常薄的 UIButton,大小 = CGSizeMake(75, 23) 以完全适合自定义背景图像。我希望按钮有一个标题。
在我调用setTitle:forState: 后,按钮会调整大小以解决标题周围的填充问题,从而破坏背景图像(即导致其平铺非常不合时宜)。我在UILabel 子视图中将标题字体设置为相当小的尺寸,因此导致问题的不是字体而是填充。因此我想删除这个填充。 UIButton 的 contentEdgeInsets、imageEdgeInsets 和 titleEdgeInsets 属性的默认值都是 UIEdgeInsetsZero,所以我假设填充位于 UILabel 子视图中的某个位置。如果是这样,我想我可以通过子类化UILabel 并覆盖textRectForBounds:limitedToNumberOfLines: 来消除它,但我不确定(我很高兴听到有人尝试过这个)。无论如何,我正在寻找更简单的出路。
我找了又找,一无所获。
有什么建议吗?
【问题讨论】:
-
设置标题后是否尝试设置按钮的边框?
-
您是否使用 PNG 作为按钮?尝试将标签添加到 PNG 文件本身,然后您可以避免标签导致的任何填充。这当然意味着您失去了动态更改按钮标签的能力。
-
@lnafziger 是的,不幸的是,尝试过没有用。
-
@Jeff Kranenburg,是的,我正在使用 PNG,但我确实需要动态更改标题,所以不幸的是,硬接线不是一种选择。我正在考虑做的是用透明像素放大PNG文件的画布以覆盖填充。当然,这意味着按钮将包含透明像素,这是不可取的,因为这些像素会生成触摸事件。
-
@lnafziger 我想我还应该提到我在设置标题后尝试设置
UILabel子视图的框架,但再次无济于事。
标签: ios uibutton uilabel padding uiedgeinsets