iOS滑块的(默认)拇指图像的确切大小(宽度,高度)是多少?是否有一些聪明的方法来哄骗这个系统(XCode,iOS)?
我试过了
int thumbWidth = slider.currentThumbImage.size.width;
我在这个网站上找到了here,但它回来时为0。
附加问题:Xcode调试器在UISlider
:CGFloat _hitOffset
中显示了这个未记录的变量。有没有人偶然知道它是什么以及它的用途是什么?
那这个呢?适合我:
CGRect trackRect = [self trackRectForBounds:self.bounds];
CGRect thumbRect = [self thumbRectForBounds:self.bounds trackRect:trackRect value:0];
CGSize thumbSize = thumbRect.size;
如果你想改变UISlider外观,那么使用下面的方法
[[UISlider appearance] setThumbImage:[UIImage imageNamed:@"yoursliderimage.png"] forState:UIControlStateNormal];
以及下面的代码也会改变你的滑块轨道
UIImage *white = [UIImage imageNamed:@"16x16white.png"];
[movieTimeControl setMinimumTrackImage:[white stretchableImageWithLeftCapWidth:3.0 topCapHeight:0.0] forState:UIControlStateNormal];
[movieTimeControl setMaximumTrackImage:[white stretchableImageWithLeftCapWidth:3.0 topCapHeight:0.0] forState:UIControlStateNormal];
Apple HIG文档没有为UISlider拇指图像定义任何大小,但它应该在正常图像大小下。
最好的方法是使用可调整大小的图像。但如果您不想使图像可调整大小,则滑块大小为23x23
在WWDC 2012集合中有一个关于UI自定义的会话视频:
https://developer.apple.com/videos/wwdc/2012/?id=216
你可以在这里找到答案。这是关于UISlider定制工具
这是swift 4版本:
yourSlider.setThumbImage(UIImage(named: "Knob"), for: .normal)