我想使用ViewController中的以下代码将我的应用程序颠倒纵向旋转:
class Image
{
private:
int numRows_, numCols_;
unsigned char* data_;
public:
Image() : numRows_(0), numCols_(0), data_(new unsigned char[0])
{}
void setData(int r, int c, unsigned char* data)
{
this->numRows_ = r;
this->numCols_ = c;
this->data_ = new unsigned char[r*c];
for (int i = 0; i < r*c; i++)
{
this->data_[i] = data[i];
}
}
int rows();
int cols();
unsigned char* data();
~Image();
};
在AppDelegate中:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{ //return NO;
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationMaskPortraitUpsideDown);
}
- (UIInterfaceOrientationMask) supportedInterfaceOrientations
{
return [super supportedInterfaceOrientations] | UIInterfaceOrientationMaskPortraitUpsideDown | UIInterfaceOrientationMaskPortrait;
}
当用户按下按钮时
- (UIInterfaceOrientationMask) application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskPortraitUpsideDown | UIInterfaceOrientationMaskPortrait;
}
该应用确实不会旋转,我不知道为什么。 有人可以暗示一下吗? 谢谢 我在info.plist中添加了方向,并在部署信息部分的常规设置中设置了复选框。
答案 0 :(得分:2)
我是否理解正确,您想以编程方式想要旋转用户界面,独立于设备的物理方向?
这不是它的工作原理:当检测到设备的(物理)旋转时,iOS调用委托方法(shouldAutorotate ......等),例如,用户将其颠倒过来。在委托方法中,如果需要,您可以将视图采用到新方向。
在模拟器中,您可以通过Alt + Left / Alt + Right键模拟设备旋转。
答案 1 :(得分:1)
您无法以编程方式旋转方向,这取决于设备的传感器。但是,您可以旋转视图层。
self.view.layer.transform = CGAffineTransformMakeRotation(M_PI_2);