2010-04-27 1 views
1

Я подклассифицировал UITableViewCell и включил некоторые подзапросы с помощью метода layoutSubviews. Все виды выделяются и инициировал в методе initWithStyle и кадры устанавливаются в методе layoutSubviews, например, так:Autoresizing subclassed subviews UITableViewCell

initWithStyle:... { 
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectZero]; 
myLabel.someProperties = Configured; 
[self.contentView addSubview:myLabel]; 

layoutSubviews { 
CGRect labelRect = CGRectMake(10.0f, 5.0f, 35.0f, 180.0f); 
myLabel.frame = labelRect; 

Установка shouldAutoRotateOrientation Да в ViewController вращается NavigationController, Tableview и UIToolbar надлежащим образом, но содержимое tableViewCells не перемещаются. Я не понимаю, где и что добавить в AutoResizingMasks. Сочетания, которые я пробовал до сих пор, ничего не сделали. Может кто-нибудь дать мне руку?

Спасибо!

+0

ли layoutSubviews, вызываемые при повороте устройства? – Skie

+0

Я не уверен. Я должен попробовать NSLog и посмотреть. – Justin

ответ

1

Ответ, который я придумал, чтобы использовать условное кодирование, чтобы поместить вид рамки, в зависимости от ориентации, в методе layoutSubviews

-(void)layoutSubviews { 
    //For portrait mode (NOT PORTRAIT UPSIDE DOWN) 
    if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice]orientation])) { 
     CGRect portraitFrame = CGRectMake(Portrait Frame Coordinates); 
     myLabel.frame = portraitFrame; 
    } else { 
    //For landscape modes 
     CGRect landscapeFrame = CGRectMake(landscape frame coordinates); 
     myLabel.frame = landscapeFrame; 
    } 
} 

Кажется взломан вместе, но он работает в подклассы UITableViewCells