如何在按钮上显示图像? -迅速
Posted
技术标签:
【中文标题】如何在按钮上显示图像? -迅速【英文标题】:How to Display Image over Button? -Swift 【发布时间】:2015-03-24 05:55:52 【问题描述】:我正在以编程方式创建 UIButton 并将标题、图像设置为以下代码。问题是,每当我单击按钮时,图像都会突出显示,但按钮的标题却没有。所以,我想创建两者的动画效果或没有。以及我应该给出限制或什么让图像与文本“SORT”相匹配?
【问题讨论】:
如果你想要两者的动画并且有正确的展示位置,你可以选择使用 UIView 创建自定义组件,并在其中使用带有选择动画的触摸。要在按钮中放置图像,您可以查看此***.com/questions/13915898/… 使用属性检查器中 UIButton 的状态属性 @iphonic 感谢它提供了插图。但我的问题没有解决。我尝试将 UIbutton 类型更改为系统按钮。它解决了我的问题,但颜色已更改为系统类型的默认颜色蓝色 @anishparajuli 您可以随时更改文本颜色和字体,例如[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [[button titleLabel] setFont:[UIFont systemFontOfSize:13.0]];
yah..i 将标题颜色更改为 btnSort.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)。但不幸的是,在我按下输入系统按钮后,图像的颜色变成了蓝色,我无法将图像的颜色更改为白色
【参考方案1】:
我成功了。我将按钮类型更改为系统按钮,颜色更改为蓝色。但是,我设法通过将色调颜色设置为白色来将蓝色更改为白色,苹果默认使用该颜色将颜色设置为其控件(我猜)。所以系统按钮颜色为蓝色是由于 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)
【讨论】:
我没有使用这种方法获得标题,图像出现但标题没有出现。你会调查它吗?【参考方案2】:这里是示例代码,你可以试试。我以编程方式创建了一个按钮,并在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)
【讨论】:
以上是关于如何在按钮上显示图像? -迅速的主要内容,如果未能解决你的问题,请参考以下文章