我已经将UITableViewCell子类化,并通过layoutSubviews方法合并了一些子视图。所有视图都在initWithStyle方法中分配和启动,帧在layoutSubviews方法中设置,如下所示:
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;
在viewController中将shouldAutoRotateOrientation设置为YES会适当地旋转NavigationController,tableView和UIToolbar,但tableViewCells的内容不会移动。就AutoResizingMasks而言,我不清楚添加的位置或内容。到目前为止我尝试过的组合没有做任何事情。有人可以帮我一把吗?
谢谢!
答案 0 :(得分: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
中工作