Rud*_*ger 16 iphone objective-c uiview ipad ios
当应用程序旋转时,准确放置和移动视图的"正确"方法是什么?也就是说,当UI从纵向旋转到横向时,如何对视图的位置,大小和重排进行细粒度控制(反之亦然)?我认为我的两个选择是:
如果你有两个具有足够独特的布局和元素的视图,那么第一种方式可能就足够了.如果你的两个视图基本上是针对不同方向的大小相同的,那么第二种方式可能是仅使用一个视图来实现它的更好方法.
我怀疑前者可以用IB完成,而后者应该以编程方式完成.
要在iPhone旋转时对子视图的位置和大小进行细粒度控制,请在UIViewController方法中更改子视图的框架willAnimateRotationToInterfaceOrientation:duration:
.此方法在动画块中调用,因此您在其中创建的子视图帧的所有更改都是动画的.
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
// Portrait frames
self.subviewA.frame = CGRectMake(x, y, width, height);
self.subviewB.frame = CGRectMake(x, y, width, height);
self.subviewC.frame = CGRectMake(x, y, width, height);
} else {
// Landscape frames
self.subviewA.frame = CGRectMake(x, y, width, height);
self.subviewB.frame = CGRectMake(x, y, width, height);
self.subviewC.frame = CGRectMake(x, y, width, height);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3914 次 |
最近记录: |