【问题标题】:Multiline Label On UIButton SwiftUIButton Swift上的多行标签
【发布时间】:2014-12-08 21:07:07
【问题描述】:

我一直在尝试获得一个同步按钮来显示Last Sync at (time&date)。但我得到的只是一行短文本。

// Sync Button

syncBtn.frame = CGRectMake(15, height-60, 120, 40)

syncBtn.addTarget(self, action: "syncBtnPressed", forControlEvents: UIControlEvents.TouchUpInside)

syncBtn.setTitle("Last Sync: Never", forState: UIControlState.Normal)

syncBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)

syncBtn.layer.borderColor = UIColor.whiteColor().CGColor

syncBtn.layer.borderWidth = 1

syncBtn.layer.cornerRadius = 5

syncBtn.titleLabel?.font = UIFont(name: "Avenir", size: 10)

syncBtn.alpha = 0.5

syncBtn.titleLabel?.sizeToFit()

syncBtn.titleLabel?.textAlignment = NSTextAlignment.Center

syncBtn.titleLabel?.numberOfLines = 2

self.view.addSubview(syncBtn)

这是获取和设置标签上日期的函数

func printTimestamp(){
    var timestamp = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .ShortStyle, timeStyle: .ShortStyle)
    self.syncBtn.titleLabel?.text = ("Last Sync at: " + timestamp)
}

谁能解决这个问题?

【问题讨论】:

    标签: xcode button swift label multiline


    【解决方案1】:

    创建一个包含多行文本的 UIButton

    可能以编程方式

      override func viewDidAppear(animated: Bool){
        super.viewDidAppear(animated)
          btnTwoLine.setTitle("Mulitple line", forState:     UIControlState.Normal)
          btnTwoLine.titleLabel!.lineBreakMode = NSLineBreakMode.ByWordWrapping;
    
        }
    

    【讨论】:

    【解决方案2】:

    使用 SetTitle 方法而不是 .text ,当您使用 .text 时,它会设置标题文本但约束不会相应更新,因此您需要使用 SetTitle 方法并将 adjustsFontSizeToFitWidth 设置为 true

    self.syncBtn.setTitle(timeStamp, forState: UIControlState.Normal)
    self.syncBtn.titleLabel?.adjustsFontSizeToFitWidth = true
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 2015-03-31
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多