我正在使用muZZkat的自定义范围滑块:NMRangeSlider @ github 1
但我需要淡化滑块。当我创建范围滑块时,我将其放入内容视图中。我已经尝试将内容视图的alpha设置为.7
UIView *sliderView = [self configureLabelSliderWithSize:CGSizeMake(300, 70)];
sliderView.alpha = .4;
但它没有产生预期的效果:
UIImageView
upperHandle和lowerHandle也淡出,显示背景音轨(蓝色部分)。我宁愿让手柄的alpha更高,所以你看不到它背后的蓝色部分。
我尝试在游侠滑块类中添加一个方法:
-(void)toggleAlpha {
self.trackBackground.alpha = .3;
self.track.alpha = .3;
self.lowerHandle.alpha = .3;
self.upperHandle.alpha = .3;
}
但这根本不会改变alpha。
UIImageViews在-(void)addSubviews
方法中都是初始化的:
- (void) addSubviews
{
//------------------------------
// Track Brackground
self.trackBackground = [[UIImageView alloc] initWithImage:self.trackBackgroundImage];
self.trackBackground.frame = [self trackBackgroundRect];
//------------------------------
// Track
self.track = [[UIImageView alloc] initWithImage:self.trackImage];
self.track.frame = [self trackRect];
//------------------------------
// Lower Handle Handle
self.lowerHandle = [[UIImageView alloc] initWithImage:self.lowerHandleImageNormal highlightedImage:self.lowerHandleImageHighlighted];
self.lowerHandle.frame = [self thumbRectForValue:_lowerValue image:self.lowerHandleImageNormal];
//------------------------------
// Upper Handle Handle
self.upperHandle = [[UIImageView alloc] initWithImage:self.upperHandleImageNormal highlightedImage:self.upperHandleImageHighlighted];
self.upperHandle.frame = [self thumbRectForValue:_upperValue image:self.upperHandleImageNormal];
[self addSubview:self.trackBackground];
[self addSubview:self.track];
[self addSubview:self.lowerHandle];
[self addSubview:self.upperHandle];
}
如果我在这里将alpha设置得更低,那就可以了。
我不明白为什么我不能从其他任何地方改变alpha?
答案 0 :(得分:1)
我刚刚添加了NMRangeSlider-Demo并将其检出。 我认为问题是你可能在viewDidLoad方法中调用 toggleAlpha ,对吗?
您应该在viewDidAppear方法中调用,因为在SouthernDanSlider类中调用layoutSubviews方法(进而调用addSubview),在viewDidLoad之后和viewDidAppear之前调用,因此无论您在viewDidLoad中执行什么操作都将在子视图初始化时重置addSubview方法。
在viewDidAppear中添加toggleAlpha只为我工作。