gpt4 book ai didi

ios - 在自定义范围 slider 上设置 alpha (NMRangerSlider)

转载 作者:行者123 更新时间:2023-11-29 13:19:50 24 4
gpt4 key购买 nike

我正在使用 muZZkat 的自定义范围 slider :NMRangeSlider@github 1

但我需要淡化 slider 。当我创建范围 slider 时,我将其放入内容 View 中。我尝试将内容 View 的 alpha 设置为 .7

UIView *sliderView = [self configureLabelSliderWithSize:CGSizeMake(300, 70)];

sliderView.alpha = .4;

但它并没有给出预期的效果:

enter image description here

UIImageView upperHandle 和 lowerHandle 也淡出显示背景轨道(蓝色部分)。我宁愿 handle 的 alpha 更高,这样你就看不到它后面的蓝色部分。

我尝试向游侠 slider 类添加一个方法:

-(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?

最佳答案

我刚刚添加了 NMRangeSlider-Demo 并查看了它。我认为问题在于您可能在 viewDidLoad 方法中调用了 toggleAlpha,对吧?

您应该改为调用 viewDidAppear 方法,因为 NMRangeSlider 类中的 layoutSubviews 方法(依次调用 addSubview)是在 viewDidLoad 之后和 viewDidAppear 之前调用的,因此无论您在 viewDidLoad 中做什么,都将在 subview 初始化时重置添加 subview 方法。

只需在 viewDidAppear 中添加 toggleAlpha 对我有用。

关于ios - 在自定义范围 slider 上设置 alpha (NMRangerSlider),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14636623/

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