【问题标题】:UIButton sizeToFit not workingUIButton sizeToFit 不起作用
【发布时间】:2016-11-09 06:53:04
【问题描述】:

这是我的代码:

let button_video = UIButton(type: .custom)
button_video.frame = CGRect.zero
if subsession.VideoUrl != nil
{   
    button_video.frame = CGRect(x: 10, y: yAxis + 15, width: 300, height: 30)
    button_video.contentEdgeInsets = UIEdgeInsets(top: 3, left: 28, bottom: 7, right: 5)
    if iVideoNumber == 0
    {
        button_video.setTitle(String(format: "Video #%i", 1), for: .normal)
    }
    else
    {
        button_video.setTitle(String(format: "Video #%i", iVideoNumber+1), for: .normal)
        }
        button_video.titleLabel?.font = UIFont(name: "OpenSans-Regular", size: 15)
        button_video.titleLabel?.textColor = UIColor.white
        button_video.setTitleColor(UIColor.white, for: .normal)
        button_video.titleLabel?.numberOfLines = 0
        button_video.titleLabel?.lineBreakMode = .byWordWrapping
        button_video.titleLabel?.textAlignment = .center
        button_video.tag = iCount
        button_video.addTarget(self, action: #selector(CourseDetailViewController.loadVideo(sender:)), for: .touchUpInside)
        let btnGradient = CAGradientLayer()
        btnGradient.frame = button_video.bounds
        btnGradient.cornerRadius = 6
        btnGradient.colors = [(UIColor(red: 174.0 / 255.0, green: 127.0 / 255.0, blue: 183.0 / 255.0, alpha: 1.0).cgColor as CGColor), (UIColor(red: 78.0 / 255.0, green: 57.0 / 255.0, blue: 96.0 / 255.0, alpha: 1.0).cgColor as CGColor)]
        button_video.layer.insertSublayer(btnGradient, at: 0)
        button_video.sizeToFit()
        view_scrollView.addSubview(button_video) 
    } 
}

按钮却占据了整个 300 的宽度

【问题讨论】:

  • 你在使用自动布局吗?
  • @Lion :不,我不是。

标签: ios swift uibutton sizetofit


【解决方案1】:

您正在插入具有已定义框架的子图层,并将其插入到您的按钮中。所以 sizetofit 正在工作,它的大小等于按钮中的最大层数,由于渐变层的大小,它是 300。

【讨论】:

    【解决方案2】:

    如果您为不同的UIControlState 使用多个标题,请确保在请求sizeToFit 之前更改UIControlState

    在我的UIButton 中,我必须使用多个标题,一个用于UIControlState.normal,另一个用于.selected 状态,我期待.normal 状态的结果,但按钮位于.selected 状态。

    【讨论】:

      猜你喜欢
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多