如何在按钮上显示图像? -Swift

How to Display Image over Button? -Swift

我正在以编程方式创建一个 UIButton 并将标题、图像设置为以下代码。问题是每当我单击按钮时,图像都会 突出显示 但按钮的标题不会。所以,我想创建两者或 none 的动画效果。以及我应该给出约束还是什么,以便图像正确显示文本 "SORT"?

我搞定了。我将按钮类型更改为系统按钮,颜色更改为蓝色。但是我设法通过将色调颜色设置为白色来将蓝色更改为白色,苹果默认使用它来将颜色设置为其控件(我猜)。所以系统按钮颜色为蓝色是由于 tintcolor 被指定为蓝色的原因

let btnSort   = UIButton.buttonWithType(UIButtonType.System) as UIButton
btnSort.frame =  CGRectMake(2, 74, 140, 26)
btnSort.tintColor = UIColor.whiteColor()
btnSort.setImage(UIImage(named:"drop_arrow"), forState: UIControlState.Normal)
btnSort.imageEdgeInsets = UIEdgeInsets(top: 6,left: 100,bottom: 6,right: 14)
btnSort.titleEdgeInsets = UIEdgeInsets(top: 0,left: -30,bottom: 0,right: 34)
btnSort.setTitle("SORT", forState: UIControlState.Normal)
btnSort.layer.borderWidth = 1.0
btnSort.layer.borderColor = UIColor.whiteColor().CGColor
btnSort.addTarget(self, action: Selector("showSortTbl"), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(btnSort)

这里是示例代码,你可以试试看。我以编程方式创建了一个按钮,并在 EdgeInsets 属性 的帮助下分配图像。

       let btnDemo : UIButton  = UIButton() 
        btnDemo.frame = CGRect(x: 5, y: 75, width: 65, height: 18)
        btnDemo.setImage(UIImage(named:"drop_arrow_sample"), forState: UIControlState.Normal)
        btnDemo.imageEdgeInsets = UIEdgeInsets(top: 6,left: 100,bottom: 6,right: 14)
        btnDemo.titleEdgeInsets = UIEdgeInsets(top: 0,left: -30,bottom: 0,right: 34)
        btnDemo.titleLabel?.font = UIFont(name: "Helvetica Neue", size: 13)
        btnDemo.layer.cornerRadius = 2.0
        btnDemo.titleLabel?.textColor = UIColor.whiteColor()
        btnDemo.backgroundColor = UIColor(red: 189/255, green: 176/255, blue: 0/255, alpha: 1)                      
        btnDemo.tag = index
        btnDemo.addTarget(self, action: "SortTable:", forControlEvents: UIControlEvents.TouchUpInside)