willAnimateRotationToInterfaceOrientation 未在一个子视图中调用,而另一个子视图可见并旋转

发布于 2024-09-28 16:41:35 字数 251 浏览 1 评论 0原文

我在 UITabBarController 中有 3 个子视图。第一个选项卡的视图具有在调用 willAnimateRotationToInterfaceOrientation 时手动移动的对象。但是,如果另一个选项卡的视图在旋转时可见,则永远不会调用 willAnimateRotationToInterfaceOrientation,并且如果我返回到第一个选项卡,第一个选项卡视图上的项目不会位于正确的位置。

当另一个视图可见时,如何在旋转时手动移动一个视图中的对象?

I have 3 subviews in a UITabBarController. The first tab's view has objects which are manually moved when willAnimateRotationToInterfaceOrientation is called. However, if another tab's view is visible on rotate, willAnimateRotationToInterfaceOrientation is never called, and the items on the first tab's view are not in the right place if I go back to the first tab.

How can i manually move objects in one view on rotate when another view is visible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花开雨落又逢春i 2024-10-05 16:41:35

我解决了。我所做的是创建一个从 ViewWillAppear 调用的方法,该方法获取当前方向并更改屏幕上的对象位置。

希望这对某人有帮助。

- (void)manuallyMoveViewObjects{

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) {
    CGRect buttonFrame = CGRectMake(125.0, 223.0, 70.0, 50.0);

    self.button.frame = buttonFrame;
}

else if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) {
    CGRect gbuttonFrame = CGRectMake(205.0, 131.0, 70.0, 50.0);
    self.button.frame = buttonFrame;

}

}

I solved it. What I did was create a method, called from ViewWillAppear, that gets the current orientation and makes changed to objects positions on screen.

Hope this helps someone.

- (void)manuallyMoveViewObjects{

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) {
    CGRect buttonFrame = CGRectMake(125.0, 223.0, 70.0, 50.0);

    self.button.frame = buttonFrame;
}

else if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) {
    CGRect gbuttonFrame = CGRectMake(205.0, 131.0, 70.0, 50.0);
    self.button.frame = buttonFrame;

}

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文