我在设置 UIView 子类对象的 alpha 值时遇到问题。有什么建议么?
我有 UIView 项目,我正在操纵其 alpha 属性来控制亮度。我正在使用 UISlider 控件在 UIView 子类中设置 alpha 属性的值,如下所示:
-(id)initWithFrame:(CGRect)rect andParent:(id)theParent {
self = [super initWithFrame: rect];
if (self !=nil) {
[self setParent:theParent];
theSlider = [[UISlider alloc] initWithFrame: CGRectMake(35.0,400.0,250,0)];
theSlider.minimumValue = 0.2;
theSlider.maximumValue = 1.0;
theSlider.value = 1.0;
theSlider.continuous = YES;
UIImage *maximumValueImage = [UIImage imageNamed:@"BrightSun.png"];
UIImage *minimumValueImage = [UIImage imageNamed:@"DimSun.png"];
theSlider.maximumValueImage = maximumValueImage;
theSlider.minimumValueImage = minimumValueImage;
theSlider.hidden = NO;
[theSlider addTarget:parent action: @selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
[self addSubview:theSlider];
}
return self;
}
父对象中的 sliderValueChanged 方法改变了另一个 UIView 子类对象 OverlayView 的 alpha 值。父对象是 UIViewController 的子类 myViewController。滑块位于名为 SliderView 的第二个 UIView 子类中。
- (void) sliderValueChanged: (id)sender {
//min = 0.2
//max = 1.0
UISlider *control = (UISlider *)sender;
float theValue = control.value;
theValue = -1.0 * (theValue - 1.0) + 0.01;
self.overlayView.alpha = theValue;
}
这似乎有效。当我尝试切换 UISlider 的 .hidden 属性时出现问题。当我将 .hidden 属性更改为 YES 时,
theSlider.hidden = YES;
滑块消失,但 OverlayView 对象的 alpha 值重置为 0.0。滑块的值不会改变。当 UISlider 对象的隐藏属性发生变化时,我希望通过
sliderValueChanged 方法设置的 OverlayView 的 alpha 属性保持不变。
关于我做错了什么的任何建议?谢谢。