"reset" cells after changing orientation

Posted by Christian on Stack Overflow See other posts from Stack Overflow or by Christian
Published on 2010-04-17T13:10:25Z Indexed on 2010/04/17 13:13 UTC
Read the original article Hit count: 210

Filed under:
|

Hi,

I added the interfaceOrientation to my app. It works fine concerning the views. Some of the table-cells I defined by CGRects to position the text in the cell. In portrait-mode the cell is 300px long, in landscape-mode 420px. I use the following code to change the CGRects depending the orientation:

- (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].....

My problem is, when the table is visible and the orientation is changed, I need to scroll to see the new "layout". How can I manage to "reload" the view after changing the orientation?

© Stack Overflow or respective owner

Related posts about iphone-sdk-3.0

Related posts about iphone-sdk