我正在尝试添加"日历日"图像在可点击的UI按钮上包围一些文本,如下所示:
let button = UIButton()
let X_Offset : CGFloat = (95 * CGFloat(buttonCount) ) + 10
let scrollHeight = scrollView.bounds.height
button.frame = CGRect(x: X_Offset, y: scrollHeight/6, width: 70, height: 60)
let buttonText = event.startTime.toShortDayOfWeekString() + "\n" + event.startTime.toShortDayOfMonthString()
button.titleLabel!.lineBreakMode = .byWordWrapping
button.titleLabel!.textAlignment = .center
button.setTitle(buttonText, for: .normal)
button.tag = i
button.backgroundColor = CompanyColor.Red.color
let image = UIImage(named: "calendarDay")
button.setBackgroundImage(image, for: .normal)
button.titleLabel?.font = UIFont(name: "Roboto", size: 14)
button.layer.cornerRadius = 8
button.clipsToBounds = true
答案 0 :(得分:0)
我认为您正在寻找的是为imageEdgeInsets
设置UIButton
。通过设置这些属性,您可以在默认位置之外移动图像。你必须四处玩才能得到你想要的结果。
有两种方法可以做到这一点。一个是使用Interface Builder
,另一个是以编程方式。接口构建器是我猜的最简单的方法。下图显示了如何为UIButton
设置这些属性。
或尝试像这样以编程方式使用
button.imageEdgeInsets = UIEdgeInsets(top: -10, left: 32, bottom: -10, right: 50)
您可以像这样移动标题
button.titleEdgeInsets = UIEdgeInsets(top: 0, left:0, bottom: 0, right: 20)
注意:如果你有动态尺寸按钮,那么设置UIEdgeInsets
可能会有不同的结果,例如对于不同的屏幕尺寸。始终确保所有屏幕尺寸都符合预期。