2015-09-23 70 views
0

我遇到了以下問題。我有一個自定義的類UITableViewCell裏面有一些UIViews,它們充當chartview的容器。 的問題是,如果我做到以下幾點:UIView裏面自定義UITableViewCell錯誤的寬度/高度

self.upperLeftChart = XYPieChart(frame: CGRectMake(0, 0, self.upperLeftContainer.frame.width, self.upperLeftContainer.frame.height)) 
self.upperLeftContainer.addSubview(self.upperLeftChart) 

的Chartview是一樣大的整體的UITableViewCell,而不是我的容器的大小。 如果打印我的容器的大小

NSLog("\(self.upperLeftContainer.frame.width)/\(self.upperLeftContainer.frame.height)") 

它打印:320.0/568.0這是不對的。我的容器大約是整個電池的四分之一。

我想這事道上跟我的自動佈局+約束。如果我將大小設置爲120x120px硬編碼,則效果很好。

任何的手段來得到的UIView的實際寬度和高度設置有自動佈局和約束?

+0

者均基於視圖的框架,什麼是upperLeftContainer的大小? – Beraliv

回答

1

你需要做的是重寫

override func layoutSubviews() { 
    super.layoutSubviews() 
    self.upperLeftCart.frame = CGRectMake(0, 0, self.upperLeftContainer.frame.width, self.upperLeftContainer.frame.height) 
} 

這樣,它會改變每時間單元重新調整

+0

不完全一樣的東西,你只需要初始化視圖一次,並設置幾次幀,layoutSubviews將被稱爲多次 –

相關問題