我在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。我错过了什么?
答案 0 :(得分:3)
如果它驻留在xib中,只需将其alpha设置为0,执行正确的连接:出口和IBAction值更改为
然后在viwDidLoad
之后的[super viewDidLoad]
写一下:
[UIView animateWithDuration:1 animations:^{self.mySegOutlet.alpha = 1;}];
在最后一次}
写入之前编写答案之后,立即进入IBAction:
[UIView animateWithDuration:1 animations:^{self.mySegOutlet.alpha = 0;}];
这是最简单的方法。
再见
答案 1 :(得分:1)
在xib中将控件的alpha设置为0.0,然后使用UIView
动画方法将其alpha动画设为1.0。例如:
[UIView animateWithDuration:1.0 animations:^{
self.segmentedControl.alpha = 1.0f;
}];
编辑:对于没有调用操作的问题,尝试将其附加到值更改控件事件 - 我不认为UISegmentedControl发送内部修饰。