0

我在我的 XIB 中设置了 UISegmentedControl。我希望它出现在 viewDidLoad 上,如果用户点击它所在的屏幕区域,然后如果用户再次点击它就会消失,或者如果用户不理会它就会淡出。

在四处寻找如何管理这个问题时,我发现了很多关于淡化 UIViews 的东西,但在淡化单个子视图方面却没有那么多,在 XIB 中的淡化元素方面几乎没有。我试图调整 UIView 的东西但失败了。

我怎样才能使这项工作?

编辑: 好的,我在 viewDidLoad 的外观和淡出工作。但是当用户点击 UISegmentedControl 所在的区域时(现在不可见,因为 alpha=0),什么也没有发生。这是我正在使用的代码:

- (IBAction)tapInvisibleSegContr
//This is connected to the UISegmentedControl with the action Touch Up Inside.  Until now, the segmented control has been at alpha=0 since fading after viewDidLoad.
{
    self.segContrAsOutlet.alpha=1.0;
    [self fadeMethodThatWorksInViewDidLoad];
    NSLog(@"Yup, tapped.");
}

我什至没有得到 NSLog。我已经将动作连接到 UISegmentedControl,动作 Touch Up Inside。我错过了什么?

4

2 回答 2

3

如果它驻留在 xib 中,只需将他的 alpha 设置为 0,进行正确的连接:一个 Outlet 和一个 IBAction 以改变值
然后在viwDidLoad右侧[super viewDidLoad]写入:

[UIView animateWithDuration:1 animations:^{self.mySegOutlet.alpha = 1;}];

}在最后一次写入之前编码答案之后的 IBAction 内部:

[UIView animateWithDuration:1 animations:^{self.mySegOutlet.alpha = 0;}];

这是最简单的方法。
再见

于 2012-08-29T06:28:23.310 回答
1

在 xib 中将控件的 alpha 设置为 0.0,然后使用UIView动画方法将其 alpha 设置为 1.0。例如:

[UIView animateWithDuration:1.0 animations:^{
    self.segmentedControl.alpha = 1.0f;
}];

编辑:对于您没有调用操作的问题,请尝试将其附加到值更改控制事件 - 我认为 UISegmentedControl 不会发送内部修饰。

于 2012-08-29T06:23:45.830 回答