2015-06-10 33 views
1

我的應用使用自定義單元在桌面視圖中顯示產品。在iPhone 5上使用時的產品名稱運行結束,因此我將其設置爲包裝 ,這不起作用。每個單元格都使用下面的代碼填充到我的Customcell類中,我已經爲brandTxt標籤添加了幾行,但仍然無法使用。自動換行不能在我的UILabel上工作

public func configure(#text: String?, placeholder: String) { 
    if (placeholder == "1") 
    { 
     brandItemLabel.text = text 
     brandItemLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping 
     brandItemLabel.numberOfLines = 2 
    } 
    else if (placeholder == "2") 
    { 
     brandSmallLabel.text = text 

    } 
    else if (placeholder == "3") 
    { 
     uomCodeLabel.text = text 

    } 
    else if (placeholder == "4") 
    { 
     codeLabel.text = text 

    } 
    else if (placeholder == "6") 
    { 
     var image = UIImage(named: "Blank.jpg") 
     if let url = NSURL(string: text!) { 
      if let data = NSData(contentsOfURL: url) { 
       image = UIImage(data: data) 
      } 
     } 
     var imgViewLbl = UIImageView(image: image) as UIImageView 
     imgViewLbl.frame = CGRect(x: 10, y: 4, width: 90, height: 90) 
     customView.addSubview(imgViewLbl) 
    } 
} 

我也使用約束嘗試,但不工作或者

因爲我已經添加下面大小經理使用preferredMaxLayoutWidth以及設​​置首選寬度,以明確的代碼,增加的制約因素設置大小和高度以及位置。

public func configure(#text: String?, placeholder: String) { 
    if (placeholder == "1") 
    { 
     brandItemLabel.text = text 
     brandItemLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping 
     brandItemLabel.numberOfLines = 2 
     brandItemLabel.preferredMaxLayoutWidth = 330 
    } 

的的UILabel仍未盡管這些變化

回答

3

的包裹當你的目標iOS 6中,直到8或更高,你必須明確地設定上的UILabel的爲preferredWidth屬性。你必須這樣做,如果標籤有多行。另請參見preferredMaxLayoutWidth:

因此,您只需指定此值(在大多數情況下,最好轉到故事板,單擊標籤,轉到「尺寸檢查器」,然後單擊「首選」旁邊的「顯式」寬度」)。

+0

謝謝您的回覆。我在大小檢查器中將首選寬度設置爲顯式,並在Customcell中的代碼中添加了brandItemLabel.preferredMaxLayoutWidth = 330這一行,但不幸的是它仍然沒有包裝。這可能與Customcell設置有關嗎? – user616076

+0

您是否也對您的標籤設置了限制?可以向我們展示截圖或其他內容嗎?你是否也嘗試將它設置爲更小的值?我認爲preferredWidth只在使用約束條件時才起作用。所以你還需要指定高度(例如約束) – Chuck

+0

我試過了約束,但不是更小的尺寸,我現在就試試。如果你讓我有你的電子郵件地址,我很樂意給你一個截圖。 – user616076