我可以使用此代码在任何我想要的位置定位UITableView:
CGRect newFrame = self.aTableView.frame;
newFrame.size.height = 300.0;
newFrame.size.width = 300.0;
newFrame.origin.y = 400;
newFrame.origin.x = 400;
self.aTableView.frame = newFrame;
上面的代码工作正常。但是,当我然后使用以下代码旋转表视图时,它总是位于(0,0),换句话说,位于屏幕的左上角:
CGPoint oldCenter=self.aTableView.center;
self.aTableView.transform=CGAffineTransformMakeRotation(-M_PI_2);
self.aTableView.center=oldCenter;
旋转后如何定位桌子?
非常感谢您提供的任何见解。
答案 0 :(得分:1)
问题是由于没有正确检测iPhone的旋转造成的。换句话说:
•旋转表格的代码很好
•仅旋转工作台不会导致其消失
问题是我没有正确检测到iPhone的轮换。我将简单地分享对XCode 5 / iOS 7有用的方法,而不是详细说明我使用的错误方法。
以下是有效的:
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration
{
//This is where I now place the code to rotate the table
//I test interfaceOrientation to see the current orientation
NSLog(@"%d", interfaceOrientation);
}
通过使用这种检测手机旋转的方法,我的代码每次更改UITableView的框架。
主要基于:frame doesnt changes while orientation in ipad