gpt4 book ai didi

ios - 用于自定义拇指位置和拇指图像的 UISlider 子类?

转载 作者:行者123 更新时间:2023-11-29 00:21:45 25 4
gpt4 key购买 nike

enter image description here

是否可以通过子类化 UISlider 来实现上述 slider ?我希望 slider 拇指移动到边缘,但还剩下一些空间。我通过覆盖以下方法实现了自定义位置,但现在拇指没有响应触摸事件。

-(void)awakeFromNib {
[super awakeFromNib];
[self setThumbImage:[UIImage imageNamed:IMG_SLIDER_THUMB] forState:UIControlStateNormal];
}

- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value {
UIImage* image = self.currentThumbImage;

CGRect thumbRect = [super thumbRectForBounds:bounds trackRect:rect value:value];

return CGRectMake(thumbRect.origin.x, rect.origin.y+2, image.size.width, image.size.height);
}

最佳答案

我通过子类化 UISlider 来实现上面的功能,并且对于触摸事件问题,我向 Storyboard 中的 slider 添加了高度约束,以增加运行时的边界。以下是将 slider 移动到边缘和自定义拇指位置的代码:

//Get thumb rect for larger track rect than actual to move slider to edges
-(CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value {
UIImage *image = self.currentThumbImage;

rect.origin.x -= SLIDER_OFFSET;
rect.size.width += (SLIDER_OFFSET*2);
CGRect thumbRect = [super thumbRectForBounds:bounds trackRect:rect value:value];
return CGRectMake(thumbRect.origin.x, rect.origin.y+2, image.size.width, image.size.height);
}

//Make track rect smaller than bounds
-(CGRect)trackRectForBounds:(CGRect)bounds {
bounds.origin.x += SLIDER_OFFSET;
bounds.size.width -= (SLIDER_OFFSET*2);
CGRect trackRect = [super trackRectForBounds:bounds];

return CGRectMake(trackRect.origin.x, trackRect.origin.y, trackRect.size.width, trackRect.size.height);
}

关于ios - 用于自定义拇指位置和拇指图像的 UISlider 子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44044268/

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