Label under image in UIButton

后端 未结 30 2064
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-29 15:53

I\'m trying to create a button which has some text beneath the icon (sorta like the app buttons) however it seems to be quite difficult to achieve. Any ideas how can I go ab

30条回答
  •  悲&欢浪女
    2020-11-29 16:38

    On iOS 11/ Swift 4 none of the above answers really worked for me. I found some examples and put my spin on it:

    extension UIButton {
    
        func centerImageAndButton(_ gap: CGFloat, imageOnTop: Bool) {
    
          guard let imageView = self.currentImage,
          let titleLabel = self.titleLabel?.text else { return }
    
          let sign: CGFloat = imageOnTop ? 1 : -1
          self.titleEdgeInsets = UIEdgeInsetsMake((imageView.size.height + gap) * sign, -imageView.size.width, 0, 0);
    
          let titleSize = titleLabel.size(withAttributes:[NSAttributedStringKey.font: self.titleLabel!.font!])
          self.imageEdgeInsets = UIEdgeInsetsMake(-(titleSize.height + gap) * sign, 0, 0, -titleSize.width)
        }
    }
    

    Hope this helps someone.

提交回复
热议问题