【问题标题】:How can I make a black UISegmentedControl show up with a visible selection highlight?如何使黑色 UISegmentedControl 显示为可见的选择突出显示?
【发布时间】:2011-11-02 14:47:02
【问题描述】:

我在工具栏中有一个简单的分段控件。它有黑色调。 When one of the segments is selected, there is no visual indicator to show this.现在通常它会使选定的部分变暗,但你不能变暗黑色。当按下普通按钮栏按钮时,它会变为浅灰色以表示它已被按下。我怎样才能对分段控件做同样的事情?

【问题讨论】:

    标签: iphone ios uisegmentedcontrol


    【解决方案1】:

    你可以玩弄 tintColor

     NSString *firstStr = @"ABC";
    NSString *secondStr = @"Catégories";
    NSArray *arTemp = [[NSArray alloc] initWithObjects:firstStr, secondStr, nil];
    UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:arTemp];
    [arTemp release];
    arTemp = nil;
    segment.segmentedControlStyle = UISegmentedControlStyleBar;
    segment.tintColor = [UIColor darkGrayColor];
    

    【讨论】:

    • 不是我想要的。我只需要将选定的段设为灰色,而不是所有段。
    • 我知道这与您想要的相反;选中的是黑色,未选中的是深灰色。我已经很久没有写那个代码了,在一些失败的测试之后,我就这样走了。
    【解决方案2】:
    1. 你看过ios5的新外观代理吗?那应该可以帮到你。

    2. 如果您还需要 ios5 之前的支持,我所看到的是制作您自己的分段控件很容易——就像一组带有自定义背景图像的按钮一样简单(当一个按钮取消选择其他按钮时)按钮被选中)或更彻底的方法,如idevrecipes.com上的这篇文章中所述

      上面链接中的网站也很好地讨论了如何为分段控件制作按钮图像并切断大写。

    3. 第三个想法是,您采用常规分段控制,将色调设置为比黑色略浅的灰色阴影,然后使用触摸事件(内部触摸,外部触摸)基本上反转分段控件的正常行为,使控件上的黑色按钮的行为就像它是选定的一样。但是我认为这违背了苹果的意图(尽管这是 iOS5 中新的提醒应用程序所做的),而且我还没有尝试过它是否有任何细微的细微差别会使它不起作用。

      李>

    我想听听您最终是如何解决这个问题的。祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-04
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 2015-04-05
      • 1970-01-01
      • 2015-12-12
      相关资源
      最近更新 更多