如何阅读UISlider拇指图像的大小

Pj *_*etz 6 iphone uislider ios

我正试图在UISlider中将一个额外的UIView放在拇指上方.为此,我需要拇指图像的宽度.在iOS6中,这很好用.我可以用:

CGFloat thumbWidth = self.navSlider.currentThumbImage.size.width;
Run Code Online (Sandbox Code Playgroud)

(如下所示:如何获得UISlider拇指图像的中心)

这在iOS7中返回0.0f.我也试过用它来阅读:

UIImage *thumb = [self.navSlider thumbImageForState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

但拇指结束为零.

是否可以读取默认滑块拇指图像的大小?或者我必须找到它,设置一个常量,以及Apple如何在以后不改变它?

Dun*_*n C 7

currentThumbImage物业的文件说:

如果未使用setThumbImage:forState:方法设置自定义拇指图像,则此属性包含值nil.在这种情况下,接收器使用默认的拇指图像进行绘制.

文档thumbImageForState:不太清楚:

返回值与指定状态关联的拇指图像,如果无法检索到适当的图像,则为nil.

我想你可能想弄清楚默认的拇指大小.如何安装看起来与系统映像完全相同的"自定义"拇指图像?这将解决苹果公司从你身下改变它的问题.

  • 我希望在没有自定义图像的情况下执行此操作,但是我认为这可能是唯一的方法。至少在所有操作系统上看起来都是一致的。谢谢! (2认同)

Rud*_*vič 6

我在我的子类中使用它:

CGRect trackRect = [self trackRectForBounds:self.bounds];
CGRect thumbRect = [self thumbRectForBounds:self.bounds trackRect:trackRect value:0];
CGSize thumbSize = thumbRect.size;
Run Code Online (Sandbox Code Playgroud)