gpt4 book ai didi

ios - 如何对多个选项卡使用相同的 [ Storyboard] View ,并根据所选选项卡更改一些小内容? (iOS)

转载 作者:行者123 更新时间:2023-11-29 03:45:53 24 4
gpt4 key购买 nike

我知道这个问题的措辞有点奇怪,但让我解释一下我想要做什么:

假设我有一个带有 2 个选项卡的应用程序,每个选项卡都有自己的 View 。两个 View 几乎完全相同,只是一个 View 包含一个或两个按钮,而另一个 View 不包含,反之亦然。

我已经在 Storyboard模式下创建了一个 View ,现在我想对其进行一点点更改,并为其他选项卡重用相同的 View 。

我不想进行深复制,因为如果我更改一个,那么我就必须更改另一个,这可能会导致两者之间出现一些不一致。

那么我应该如何为多个选项卡使用相同的通用 View ,并根据我所在的选项卡更改一些小内容?

我是否应该在 Storyboard View 中添加通用内容,然后以编程方式添加特定选项卡独有的内容?如果我这样做,我需要一种方法来检测选择了哪个选项卡,对吧?有办法做到这一点吗?

感谢您的建议!

最佳答案

您不需要为此使用 Storyboard 。当然,您可以将 View 拖到那里并将其分配给特定的类并对其中的所有内容进行编程,但如果您确实只需要其中的一个 View ,那么 Storyboard就没用了。如果您想更改某些内容,您应该以编程方式处理 subview 。这非常好,并且您有一些很棒的功能,例如 animationWithDuration:

要检查 UITabBarController 中的哪个选项卡被选中,您可以使用 self.tabBarController.selectedIndex 并将其与所选选项卡的给定索引进行比较。

编辑:

如果我们假设选项卡上有一个索引为 0 的绿色按钮,并且相同的按钮应在上面滑动一点,并且当点击索引为 1 的选项卡时,红色按钮应出现在绿色按钮的位置。

UIButton *greenButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 320, 100, 20)];
greenButton.backgroundColor = [UIColor greenColor];
[self.view addSubview:greenButton];


UIButton *redButton = [[UIButton alloc] initWithFrame:CGRectMake(0, greenButton.frame.origin.y, 100, 20)];
greenButton.backgroundColor = [UIColor redColor];

if (self.tabBarController.selectedIndex == 1) {
[UIView animateWithDuration:1.0 animations:^{
greenButton.frame = CGRectMake(0, 300, 100, 20);
} completion:^(BOOL finished) {
[self.view addSubview:redButton];
}];
}

首先,创建两个按钮并将绿色按钮添加到 View 中。 (第一个 View 位于索引 0 处)。然后检查 selectedIndex 是否为 1 并为按钮设置动画。

关于ios - 如何对多个选项卡使用相同的 [ Storyboard] View ,并根据所选选项卡更改一些小内容? (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17766240/

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