在 UIButton 上同时显示图像和标题 - Swift 3

Posted

技术标签:

【中文标题】在 UIButton 上同时显示图像和标题 - Swift 3【英文标题】:Display Image and Title Simultaneously on UIButton - Swift 3 【发布时间】:2017-05-11 07:08:12 【问题描述】:

如何在 UIbutton 上同时显示标题和图像?我尝试关注使用 swift 2 的 Display image and text in Button,但相同的过程仅在 swift 3 中显示图像,标题隐藏。图像源文件为 35x35 像素。我的代码:

  let folderButton = UIButton(frame: CGRect(x: 100 , y: 200, width: 200, height: 41))
  folderButton.layer.borderColor = UIColor.black.cgColor
  folderButton.layer.borderWidth = 1
  folderButton.imageEdgeInsets = UIEdgeInsets(top: 0,left: 162,bottom: 3,right: 3)
  folderButton.titleEdgeInsets = UIEdgeInsets(top: 0,left: 0,bottom: 0,right: 41)
  folderButton.setImage(UIImage(named:"FolderIcon35"), for: UIControlState.normal)
  folderButton.setTitle("Test", for: UIControlState.selected)
  folderButton.setTitleColor(.black, for: .normal)
  view.addSubview(folderButton)

current Output

需要一个程序化解决方案,因为我没有使用情节提要。谢谢!

【问题讨论】:

请确认您的图像最多只显示文件夹,或图像最多显示黑色边框? 【参考方案1】:

我认为你应该为 UIControlState.normal

设置标题
folderButton.setTitle("Test", for:.normal)

【讨论】:

谢谢!错过 UIControlState.selected 错字是我的错【参考方案2】:

试试这个:folderButton.setTitle("yourTitle", for: UIControlState. normal)

【讨论】:

【参考方案3】:

问题是您仅将标题设置为 UIButton 选定模式。因此,当您选择按钮时,标题应与您当前的代码一起显示。要在正常模式下显示标题,您应该将标题集状态更改为 .normal

folderButton.setTitle("Test", for: UIControlState.normal)

【讨论】:

【参考方案4】:

对于ios中的UIButton,我们可以根据状态改变按钮的外观,即Normal和Selected。 在这里,您正在设置按下按钮时按钮的标题,因此您需要通过将状态设置为正常来在代码中添加额外的行。

folderButton.setTitle("Test", for: UIControlState.selected) folderButton.setTitle("Test", for: UIControlState.normal)

更多关于ios中UIButton的参考,请访问:UIButton

【讨论】:

以上是关于在 UIButton 上同时显示图像和标题 - Swift 3的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在丰富的通知 iOS swift 中同时显示图像和视频?

通过按钮同时显示图像和文本字符串[复制]

在滑动手势识别器上禁用“在突出显示时显示触摸”

在 Storyboard 和 Swift 2 中禁用 UIButton 突出显示

UIButton 背景图像水平缩放以填充同时保持纵横比

如何在按住手指的同时从使用一个 UIButton 切换到另一个?