gpt4 book ai didi

iphone - 隐藏或移动SegmentContoller

转载 作者:行者123 更新时间:2023-12-03 20:09:15 27 4
gpt4 key购买 nike

您好,我已经尝试了 3 周来解决这个问题,但它难倒了我。我想做的是从数组创建一个由 3 部分组成的段,将其显示在 View 中的某个位置,然后在设置“OFF”标志时将其从 View 中删除。除了删除该段之外,一切都有效。它甚至可以与 (pickOne) 进行通信并在标签中显示分段字母。我无法开始工作的是以下两个之一:setHidden:YES或removeAllSegments。任何帮助,将不胜感激。这是我的代码。

- (void) showSegment {

int x = 192;
int y = 212;

int w = 125;
int h = 25;

SegUnit1 = @"A";
SegUnit2 = @"B";
SegUnit3 = @"C";

threeSegs = [NSArray arrayWithObjects: SegUnit1, SegUnit2, SegUnit3, nil];
segSize = [NSArray arrayWithArray:threeSegs];

UISegmentedControl *heightSC = [[UISegmentedControl alloc] initWithItems:segSize];

if ([segmentState_height isEqualToString:@"ON"]) {

NSLog(@"segmentState_height = %@",segmentState_height);
heightSC.frame = CGRectMake(x, y, w, h);
heightSC.segmentedControlStyle = UISegmentedControlStyleBar;
heightSC.selectedSegmentIndex = -1;
[heightSC addTarget:self
action:@selector(pickOne:)
forControlEvents:UIControlEventValueChanged];
[self.view addSubview:heightSC];
[heightSC release];
} else if ([segmentState_height isEqualToString:@"OFF"]) {

NSLog(@"segmentState_height = %@",segmentState_height);
[heightSC setHidden:YES]; // NSLog showing "OFF" but segment will not hide.
[heightSC removeAllSegments]; // NSLog showing "OFF" and segment is suppose to dismantle and does not.

}
}

我现在知道我必须“不”在同一函数中创建和删除,并且获得了纠正此问题的提示,但我不知道如何使用该提示。

这是建议的内容。

嗯,你的方法有点困惑,因为你试图同时创建和隐藏。因此,您可能会考虑将其拆分为单独的方法。

一般来说,会是这样的:

代码:

if ([self theControlProperty] == nil)
{
UISeg... *theControl = [[UISeg alloc] ....];

[self setTheControlProperty:theControl];

...

}

if (shouldHideTheControl)
{
[[self theControlProperty] setHidden:YES];
}

如有任何帮助,我们将不胜感激。

最佳答案

您遇到的问题是每次调用该方法时都会创建一个新的 UISegmentedControl 实例。第一次,您创建一个实例并将其作为 subview 添加到您的 View 中。这显然工作得很好,正如它应该的那样。然后该方法返回,您不再有任何简单的方法来引用您创建的实例。当您重新输入 -showSegment 时,您将创建一个不同实例,然后隐藏和/或销毁它。这个不同的实例对您提供给 View 的实例没有任何影响。

您需要做的是将 heightSC 设置为实例变量。将其添加到头文件中的接口(interface)声明中,然后仅初始化一次,随后根据需要隐藏或修改它。关键点是您需要引用正在屏幕上绘制的 UISegmentedControl 实例,该引用位于方法本身之外,您可以在调用该方法时第二次、第三次、第四次等使用该引用.

关于iphone - 隐藏或移动SegmentContoller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4866286/

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