2016-03-24 61 views
0

我有單元格,並在該單元格視圖中帶有textview。在textview上是與EZSwiftExtensions的邊界。表格單元格中的Swift ios textview不會以正確的大小生成

現在的問題是,第一次加載的邊框不是全寬,但是當我向下滾動並滾動到頂部時,該邊框爲全寬。

這是爲什麼發生?

當應用程序加載時:

enter image description here

當向下滾動,然後回來頂:

enter image description here

細胞的Xcode:

enter image description here

單元格編號:

import UIKit 
import EZSwiftExtensions 

class JokeTableViewCell: UITableViewCell { 

    var item: Joke! { 
     didSet { 
      cellView.setCornerRadius(radius: 4) 
      hearthImg.image = UIImage(named: "HearthWhite") 
      starImg.image = UIImage(named: "StarWhite") 
      txtLabel.addBorderBottom(size: 1, color: UIColor.lightGrayColor()) 
      setupCell() 
     } 
    } 

    @IBOutlet weak var cellView: UIView! 
    @IBOutlet weak var authorLabel: UILabel! 
    @IBOutlet weak var txtLabel: UILabel! 
    @IBOutlet weak var hearthImg: UIImageView! 
    @IBOutlet weak var likesLabel: UILabel! 
    @IBOutlet weak var starImg: UIImageView! 
    @IBOutlet weak var scoreLabel: UILabel! 

    override func awakeFromNib() { 
     super.awakeFromNib() 
    } 

    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 
    } 

    func setupCell() { 
     authorLabel.text = item.creator 
     if item.creator == "" { 
      authorLabel.text = "Aninomno" 
     } 
     txtLabel.text = item.text 
     if item.liked == true { 
      hearthImg.image = UIImage(named: "HearthRed") 
     } 
     if item.rated == true { 
      starImg.image = UIImage(named: "StarYellow") 
     } 
     likesLabel.text = item.likes.toString 
     scoreLabel.text = item.score.toString 
    } 

} 

我需要它始終是全寬。

+1

有幾個可能發生這種情況的響應。您是否在滾動前檢查了'textView'的大小是否如預期的那樣?如果不使用視圖調試器來檢查。 – Jelly

+0

它是,我測試了長字符串,所以它顯示全寬,但邊框仍然不是全寬。 –

+0

我的猜測是你使用自動佈局,並且在更新視圖之前畫出線條以反映約束。我認爲這是您使用的庫中的一個錯誤,可以分享您正在使用的更多細節(或某些代碼)。 – Jelly

回答

1

addBorderBottom的執行情況並不好。您可以覆蓋layoutSubviews並在那裏使用addBorderBottom,它應該可以工作。然而,這種方法被稱爲多次,你會最終有多個邊界堆疊在一起。 你可以通過使用高度爲1px的UIView作爲子視圖和一些保證金約束來實現自己的邊框,我認爲這是最簡單的解決方案。

+0

我想過這個解決方案,我想我會用這個解決方案..謝謝.. –