IOS 6 - 自定义 UIButton 如何给我的 titleLabel 留出余量?
Posted
技术标签:
【中文标题】IOS 6 - 自定义 UIButton 如何给我的 titleLabel 留出余量?【英文标题】:IOS 6 - Custom UIButton how to give my titleLabel a margin? 【发布时间】:2013-03-19 09:52:19 【问题描述】:我在 drawRect: 方法中为我的 UIButton 子类绘制了一个插入矩形边框。 如您所见,该形状离我的按钮 titleLabel 框架太近了。如何设置 titleLabel 的最大宽度/边距以避免这种情况?
DrawRect: 方法
- (void)drawRect:(CGRect)rect
[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [UIColor bluecolor].CGColor);
CGContextSetLineWidth(context, 2.0);
CGContextMoveToPoint(context, 4,4);
CGContextAddLineToPoint(context, 56, 4);
CGContextAddLineToPoint(context, 56, 56);
CGContextAddLineToPoint(context, 4, 56);
CGContextAddLineToPoint(context, 4,3);
// and now draw the Path!
CGContextStrokePath(context);
【问题讨论】:
【参考方案1】:在drawRect方法中使用self.titleEdgeInsets=UIEdgeInsetsMake(0, 5, 0, 5);
。
【讨论】:
【参考方案2】:试试这个代码....
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
UIEdgeInsets edgeInsets = button.titleEdgeInsets;
edgeInsets.left -= 5;
edgeInsets.right += 5;
button.titleEdgeInsets = edgeInsets;
【讨论】:
【参考方案3】:在 xCode 中,可以使用 Inset 属性进行设置,如下面的屏幕截图所示:
【讨论】:
以上是关于IOS 6 - 自定义 UIButton 如何给我的 titleLabel 留出余量?的主要内容,如果未能解决你的问题,请参考以下文章
iPhone iOS自定义UIButton与CAGradientLayer,如何让它指示触摸?
如何在 iOS 中创建一个非常自定义的 uibutton,如 UITableViewCellStyleSubtitle
如何在 Swift 中创建具有自定义形状的 UIButton?