2012-01-30 50 views
0

我有一個分組的TableView,並且我已將一個UISwitch放置在行的右側,就在「>」的左側。現在,我已經使用了一個明確的CGRect(沒有計算值)。將UISwitch定位到適用於iPhone,iPad和Retina的UITableView中

在iPhone 4.2中,它被正確定位,但當然在iPad 4.2上沒有。

是否有具體的方法來計算定位,將產生相同的相對位置,無論設備/屏幕資源? 或者我只是使用屏幕寬度,表格單元寬度等,並自己計算它?

+0

您可以爲您的每個組件使用以下公式:ipadVersion.width = iphoneVersion.width * 768/480.這是僅在肖像模式下查找寬度的簡單示例。當然,使用相同的模型可以找出x,y和高度。事實是,結果是iPhone版本的延伸版本。我不認爲有另一種選擇 – 2012-01-30 15:03:40

回答

0

對於自定義視圖(如UITableViewCell子類),可以使用layoutSubviews做你的自定義視圖定位:

- (void) layoutSubviews { 
    [super layoutSubviews]; 

    // layout relative to contentView frame 
    switchView.frame = CGRectMake(
     CGRectGetWidth(self.contentView.frame) - CGRectGetWidth(switchView.frame) - someMargin, 
     4.0f/y, // or something else related to the contentView 
     CGRectGetWidth(switchView.frame), 
     CGRectGetHeight(switchView.frame) 
    ); 
} 

您可以使用也自動調整口罩自動化子視圖的重新定位。這將適用於你的情況(定位在容器視圖的右側),但是如果你想相對於兄弟視圖進行定位,它的用處不大。

相關問題