我將interfaceOrientation添加到我的應用程序。關於意見,它工作得很好。一些由CGRects定義的表格單元將文本定位在單元格中。縱向模式下,單元格長度爲300px,橫向模式爲420px。我使用下面的代碼來改變依賴於方位CGRects:更改方向後「重置」單元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.interfaceOrientation == UIDeviceOrientationPortrait) {
NSString *currentLanguage = [[NSString alloc] initWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/sprache.txt"]];
static NSString *TableViewTableCellIdentifier = @"TableViewTableCellIdentifier";
UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:TableViewTableCellIdentifier];
CGRect cellRect = CGRectMake(0, 0, 300, 175);
cell.backgroundColor = [UIColor darkGrayColor];
cell = [[[UITableViewCell alloc] initWithFrame:cellRect reuseIdentifier:TableViewTableCellIdentifier] autorelease];
CGRect keyLabelRect = CGRectMake(0, 5, 5, 20);
UILabel *keyLabel = [[UILabel alloc]initWithFrame:keyLabelRect];
keyLabel.tag = 100; //.........
} else {
NSString *currentLanguage =
[[NSString alloc] initWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/sprache.txt"]];
static NSString *TableViewTableCellIdentifier = @"TableViewTableCellIdentifier";
UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:TableViewTableCellIdentifier];
CGRect cellRect = CGRectMake(0, 0, 450, 175);
cell.backgroundColor = [UIColor darkGrayColor];
cell = [[[UITableViewCell alloc] initWithFrame:cellRect reuseIdentifier:TableViewTableCellIdentifier] autorelease];
CGRect keyLabelRect = CGRectMake(0, 5, 5, 20);
UILabel *keyLabel = [[UILabel alloc] //.....
}
}
我的問題是,當表可見,並且方向改變,我需要滾動才能看到新的「佈局」。如何在更改方向後設法「重新加載」視圖?
您對不同視圖控制器的建議可以正常工作。謝謝。但是,如何在用戶更改方向時進行管理?我在viewcontroller0中決定了方向:縱向 - > viewControllerA,橫向 - > viewControllerB。例如,viewControllerA被選中,然後用戶改變方向。他必須退出實際的viewControllerA,然後選擇正確的viewControllerB。 – Christian 2010-04-17 19:51:28
在每個控制器的'willRotateToOrientation'方法中,您將該方向的視圖控制器推送到沒有動畫的導航堆棧上。當您旋轉回來時,您會關閉最後一個視圖。用戶不能說他們是不同的意見。 – TechZen 2010-04-17 20:46:01