我有一個UITableView
與3個單元格,最終將作爲儀表板。我正在嘗試使用KDCircularProgress
來配置帶有圓形進度視圖的頂部單元格 - 我有一個UIView
,我用約束定位,然後以編程方式添加循環進度對象。更新方向變化UITableViewCell子視圖約束
但是,當我將設備旋轉到風景時,進度視圖會發生變化(請參閱第一幅圖像)。我嘗試過setNeedsLayout()
,layoutSubviews
和layoutIfNeeded()
的各種組合,但沒有運氣。
我也嘗試reloadData()
在willAnimateRotation(to toInterfaceOrientation: UIInterfaceOrientation, duration: TimeInterval)
,這讓我略微進一步,因爲視圖正確調整大小(請參閱第二張圖片),但它創建了重複。從cellForRowAt
提取方法如下:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.row {
case 0:
let topCell = tableView.dequeueReusableCell(withIdentifier: "topCell", for: indexPath) as! DashboardTopTableViewCell
//Progress config
topCell.progressBar = KDCircularProgress(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: topCell.circularProgressContainer.frame.width, height: topCell.circularProgressContainer.frame.height)))
let colorForProgress: UIColor = UIColor(red: 69.0/255.0, green: 110.0/255.0, blue: 178.0/255.0, alpha: 0.8)
topCell.progressBar?.progressColors = [colorForProgress]
let progressAsAngle = ((percentageComplete/100)*360)
topCell.progressBar?.animate(toAngle: progressAsAngle, duration: 2.0, completion: nil)
topCell.circularProgressContainer.addSubview(topCell.progressBar!)
return topCell
所以我有點卡住了 - 有什麼建議嗎?
在cellForRow使用addSubview
好的,理解。當你說'在任何地方查看'添加視圖時,你有什麼想法? – Tom
我想你會將DashboardTopTableViewCell作爲Storyboard或XIB中的原型單元格,您可以在其中添加。 –
對不起,應該提到KDCircularProgress沒有Storyboard對象,因此我以編程方式創建它。 – Tom