我有一个tableView,我必须根据设备是纵向还是横向来定义不同的单元高度,但这种方法似乎无法识别设备的方向。此方法不起作用:
-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice]orientation];//here doesn't recognize the orientation
if(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone){
if(deviceOrientation == UIInterfaceOrientationPortrait || deviceOrientation== UIInterfaceOrientationPortraitUpsideDown) {
self.tableView.rowHeight =33.33333;
}
else if (deviceOrientation== UIInterfaceOrientationLandscapeRight || deviceOrientation==UIInterfaceOrientationLandscapeLeft){
self.tableView.rowHeight = 16.333333;
}
}
else {
if(deviceOrientation == UIInterfaceOrientationPortrait || deviceOrientation== UIInterfaceOrientationPortraitUpsideDown){
self.tableView.rowHeight = 66.66666;
}else if (deviceOrientation== UIInterfaceOrientationLandscapeRight || deviceOrientation==UIInterfaceOrientationLandscapeLeft){
self.tableView.rowHeight = 33.333333;
}
}
return self.tableView.rowHeight;
}发布于 2012-10-30 17:44:11
使用:
UIDeviceOrientation deviceOrientation = [UIApplication sharedApplication].statusBarOrientation;要识别statusBar方向,请执行以下操作:
UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice]orientation];发布于 2012-10-30 18:26:58
使用单例类方法UIDeviceOrientation deviceOrientation = UIApplication sharedApplication.statusBarOrientation];
https://stackoverflow.com/questions/13135906
复制相似问题