2012-05-30 33 views
3

我通過旋轉90度如何避免在方向更改後調整UITableView(旋轉)單元格的大小?

horizontalShopsTableViewController.view.transform = CGAffineTransformMakeRotation(-M_PI/2); 

,然後旋轉90度其細胞背面執行水平的UITableView:

cell.contentView.transform = CGAffineTransformMakeRotation(M_PI/2); 

我希望表具有柔性的寬度。如果我不把它設置的靈活一些,在方向改變後一切正常。但是,如果我這樣做,細胞內容錯位並消失。表格視圖的標誌「Autoresize Subviews」爲false。

enter image description here

任何想法可能是造成問題,或可用於什麼選擇?

回答

4

好的,問題是,由於tableview的寬度是靈活的,旋轉之後單元格的寬度(實際上是高度)也增加了。我通過繼承的UITableView並重寫layoutSubviews方法克服了這個問題,所以現在看起來是這樣的:

- (void)layoutSubviews { 

    [super layoutSubviews]; 

    for (UIView* child in [self subviews]) { 

     CGRect frame1 = child.frame; 
     if ([child isKindOfClass:[UITableViewCell class]]) { 
      frame1.size.width = 120; 
      child.frame = frame1;   
     } 
    } 

} 

不管怎樣,我還是不明白,爲什麼UITableView的是調整其大小,細胞,如果我明確地設置自動調整子視圖假。

1

uuuuh ...你想達到什麼目的?當然,自動調整系統不考慮視圖上的任何變換。可能你必須手動調整它。

但是你不能用標準的滾動視圖來達到目的麼!使用變換來旋轉UI組件並不是最好的想法,因爲您遇到了其他問題。

+0

我也在考慮scrollview,但是我想從uitableview功能中受益,例如可以使用nsfetchedresults控制器來填充其數據 – Gytis

相關問題