gpt4 book ai didi

ios - 如何让UISlider在第一次显示的时候变粗?

转载 作者:可可西里 更新时间:2023-11-01 03:56:10 26 4
gpt4 key购买 nike

我正在尝试制作一个具有粗轨道的 UISlider。我试过 this ,它几乎可以工作。但是,第一次显示UISlider时,轨迹条是正常的。只有当它收到触摸事件时,它才会变厚。

这是我按照建议添加到 UISlider 子类的代码:

- (CGRect)trackRectForBounds:(CGRect)bounds
{
return bounds;
}

我不明白它是如何工作的,所以我不明白为什么它不能完美地工作。这是我的问题:

  1. 这是如何运作的?
  2. 如何控制轨道的厚度?
  3. 如何让它在第一次绘制 UISlider 时影响轨道?

当然,第三个问题是最重要的,尽管其他问题会帮助我理解。

还有一件事要考虑:第一次显示时,我隐藏拇指:

[slider setThumbImage:[[UIImage alloc] init] forState:UIControlStateNormal];

当用户触摸 slider 时,我会像这样显示拇指:

[slider setThumbImage:nil forState:UIControlStateNormal];

我提到这个是因为我想知道这是否会以某种方式干扰 trackRectForBounds 魔法。

谢谢!

最佳答案

问题 1. 来自 the docs :

If you want to customize the track rectangle, you can override this method and return a different rectangle. The returned rectangle is used to scale the track and thumb images during drawing.

此方法的默认实现返回一个比传递给它的矩形更小的矩形。你的只是返回它传递的内容,而不是先缩小它。

问题2.返回一个更大或更小的CGRect,例如:

return CGRectMake(0, 0, 500, 200);

问题 3. 我认为只有在您未设置自定义图像时才会调用该方法,这就是为什么在将图像设置为 nil 之前它没有任何效果>。如果您想覆盖图像,请尝试使用看起来像您想要的方式的实际图像覆盖 slider 图像。

关于ios - 如何让UISlider在第一次显示的时候变粗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15443652/

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