代码之家  ›  专栏  ›  技术社区  ›  tcurdt

自定义uislider外观

  •  10
  • tcurdt  · 技术社区  · 15 年前

    要自定义uislider的视觉外观,可以设置缩略图和跟踪图像。部分轨迹图像会拉伸到适当的。从文档中:

    可伸展区域位于两个区域之间 端盖区域。端盖定义 图像中保留的部分 保持原样,不拉伸。这个 可伸展区域为1点宽 端盖之间的区域 复制以显示图像 比较长的。

    现在我的问题是我的可伸缩区域需要超过1点宽。(这是一个模式)不幸的是,1点宽度在SDK中似乎是硬编码的。

    有人知道如何解决这个问题吗?或者我必须为这个从头开始写我自己的滑块?

    7 回复  |  直到 8 年前
        1
  •  1
  •   Can Berk Güder Pugalmuni    15 年前

    我相信你必须写自己的滑条才能做到这一点。似乎没有(公共)API来更改uislider关于可伸缩区域的行为。

        2
  •  12
  •   KPM    14 年前

    只需使用透明图像作为跟踪图像,并在下面放置uiImageView:)

        3
  •  2
  •   Jun    12 年前

    我知道答案迟了。

    但我解决了以下问题:

    4是PNG文件中圆帽的宽度。

    UIImage *minimum = [UIImage imageNamed:@"slider_minimum.png"];
    [slider setMinimumTrackImage:[minimum stretchableImageWithLeftCapWidth:4 topCapHeight:0]
                          forState:UIControlStateNormal];
    
        4
  •  1
  •   Ed Marty    15 年前

    您可以创建图像,使其尽可能宽,并预先渲染图案。

        5
  •  0
  •   HitScan    15 年前

    您需要使用StretchableImageWithLeftCapWidth:TopCapHeight:初始化图像。LeftCapWidth和TopCapHeight是图像对象的只读属性,但使用该函数可以设置它们。您只需设置左上角,因为左上角和右上角的大小相同,上下角也相同。因此,要使用左侧大小为5像素的自定义滑块轨迹,您需要具有11像素宽的图像(按您需要的高度):5个用于左盖,1个用于轨迹拉伸的像素宽,5个用于右盖。由于没有玩过它,我不知道使用一个超过0的topcapheight是否能像预期的那样工作,但我怀疑它不会造成很多问题。

        6
  •  0
  •   Sam Soffes Jolly Roger    14 年前

    我想在uislider后面有一个模式。最后,我将两个图像都设置为零,并在滑块下添加了一个视图,因为我不需要在拇指的任何一侧都有所不同。如果你需要根据职位改变,这会更困难,但相当可行。

        7
  •  0
  •   nehaSingh    8 年前

    要制作自定义uislider,您有很多方法。取决于您想要的定制。有一些默认属性可以设置为自定义uislider,如下所示: 设置图像:对于状态: 设置最小跟踪图像:对于状态: setMaximumTrackImage:状态: 如果您需要进一步的定制,可以参考下面的链接 https://medium.com/@0209neha/creating-a-custom-uislider-7756bf898832#.o1l4qhymo https://github.com/0209Neha/ExploringSlider