我很难弄清楚如何为我的 iPad 应用程序的一个屏幕处理不同的设备方向。这是我的情况:
~ 除一个标签外,所有屏幕都使用弹簧和支柱完美旋转。这个标签的问题是我希望它以非正统的方式(对角线)移动,因此弹簧和支柱(或调整面具的大小将不起作用)。
〜我正在考虑这样做的方式是这样的:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)newInterfaceOrientation duration:(NSTimeInterval)duration
{
if(UIInterfaceOrientationIsLandscape(newInterfaceOrientation))
{
self.myScreenLabel.frame = CGRectMake(600,0,400,100);
}
else {
self.myScreenLabel.frame = CGRectMake(...//something); }
}
我也会用类似的逻辑检查 viewDidLoad。 If in portrait mode, put label at... else put label at...
.
我认为这会奏效;但是,我有点想知道是否有更好的设计方法来做到这一点。上面的方法,到处都有硬编码的数字;因此,有没有更好的方法来做到这一点?此外,这种方法没有利用这样一个事实,即我的标签在纵向模式的情节提要中完美定位,而我需要更改的只是横向。
对更好的设计有什么建议吗?