2015-09-23 46 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将被称为多次 –

相关问题