gpt4 book ai didi

iphone - 在 View Controller 、iOS 应用程序之间切换

转载 作者:行者123 更新时间:2023-12-03 20:30:47 24 4
gpt4 key购买 nike

我已经在天气应用程序上工作了几个星期。我目前有 4 个 View Controller 设置和运行。当前所有内容都链接到我的选项卡栏 Controller ,但我需要在选项卡上有更多空间,并且 3 个 View Controller 是相似的。我不确定最好的方法是什么。这 3 个类似的 View Controller 是预测 Controller ,一个是当前条件,一个是扩展预测,第三个是周末 View 。我想做的是将当前 Controller 链接到选项卡栏(足够简单),并可以选择将 View 从当前 View 切换到其他选项。我尝试添加另一个选项卡栏 Controller ,但我不喜欢两个选项卡栏 Controller 的外观。我添加了一张图片,以便您可以看到它当前的设置方式,基本上我想消除最后 2 个选项卡并通过第二个选项卡访问它们。关于实现这一目标的最佳最有效方法有什么建议吗?

enter image description here

enter image description here

最佳答案

这实际上更像是一个 UI 设计问题,而不是一个编程问题……但无论如何我都会添加一些编程。

我建议您将三个预测放在一个支持分页的 ScrollView 中。那么您只需要一个选项卡,就可以让用户在预测之间滑动:

paging weather view

您还可以在 iOS 6 上使用 UIPageViewController 实现此滚动,方法是将其 transitionStyle 设置为 UIPageViewControllerTransitionStyleScroll

为了让用户知道有多个预测可用,您可以添加 UIPageControl ,如果你能在那个相当繁忙的预测屏幕上找到空间的话。

让用户了解其他预测页面的另一种方法是在 ScrollView 出现时弹起它。这就是编程进来的!

在预测选项卡的 View Controller 中执行此操作:

- (void)viewDidAppear:(BOOL)animated {
[self bounceScrollViewIfNeeded];
}

- (void)bounceScrollViewIfNeeded {
if (scrollView_.contentOffset.x != 0)
return;

[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
scrollView_.contentOffset = CGPointMake(20, 0);
} completion:^(BOOL finished) {
if (finished && !scrollView_.tracking) {
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
scrollView_.contentOffset = CGPointZero;
} completion:nil];
}
}];
}

如果 ScrollView 显示最左侧的页面,此代码会在出现预测选项卡时使 ScrollView 稍微弹起。您可能还想在用户看到几次后停止弹跳。无论如何,它看起来像这样:

bounce

如果用户尝试在弹跳发生时开始拖动,您需要取消动画。您可以通过将 View Controller 指定为 ScrollView 的委托(delegate)并实现此委托(delegate)方法来做到这一点:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[scrollView_.layer removeAnimationForKey:@"bounds"];
}

我认为没有一种简单的方法可以使用 UIPageViewController 进行弹跳。

关于iphone - 在 View Controller 、iOS 应用程序之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13609932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com