【问题标题】:What is the UIColor of the default UITableView separator?默认 UITableView 分隔符的 UIColor 是什么?
【发布时间】:2011-09-20 17:40:31
【问题描述】:

谁能告诉我默认 iPhone UITableView 分隔符的 UIColor 名称或确切的 RGBA 吗?

看起来像浅灰色,但不是[UIColor lightGrayColor];它比那更轻。

【问题讨论】:

    标签: iphone ios uitableview uicolor


    【解决方案1】:

    颜色不保证是特定颜色。它可以在操作系统和 SDK 版本上进行更改。 您可以通过访问separatorColor 属性来动态检索准确的颜色。

    UITableView* TV = [[UITableView alloc] init];
    UIColor* C = [TV separatorColor];
    CGColorRef CGC = [C CGColor];
    

    现在您可以通过UIColor 的方法获取每个通道的值。或者直接使用CGColor进行绘图。

    这里是UITableView.h中属性的头文件注释。

    @property(nonatomic,retain) UIColor *separatorColor;
    // default is the standard separator gray
    

    如果你想避免每次UITableView的实例化成本,只需获取一次并缓存它。


    正如@Isuru 在评论中指出的那样,您可以像这样用 Swift 编写。

    UITableView().separ‌​atorColor
    

    正如@Jordan 在评论中指出的那样,您也可以存储结果以避免进一步的评估成本。

    let defaultTableSeparato‌​rColor = UITableView().separa‌​torColor
    

    【讨论】:

    • 不知道为什么这没有得到更多的支持,完美的解决方案imo :)
    • @Jason 因为如果你只需要一种颜色,它会很贵。
    • 这很整洁。在带有 Swift 的 iOS 8 中,您可以在一行中得到它而无需实例化。 UITableView().seperatorColor.
    • @Isuru 当你调用 UITableView() 你正在实例化一个 UITableView
    • 添加到快速答案...由于全局属性是延迟计算的,因此您需要在文件顶部使用它,只需使用一行,自动缓存值:private let defaultTableSeparatorColor = UITableView().separatorColor
    【解决方案2】:

    …就CGContextSetRGBStrokeColor而言,它应该是:

    CGContextSetRGBStrokeColor (
       CGContextRef c,
       224.0/255.0,
       224.0/255.0,
       224.0/255.0,
       CGFloat alpha
    );
    

    很简单,希望能解决您的问题。

    【讨论】:

    • 更近似地说,在 iOS 9 中,R、G & B 为 217.0f/255.0f。
    【解决方案3】:

    iOS 7 似乎发生了变化:

    现在颜色是 RGB(200, 199, 204):

    [UIColor colorWithRed:200/255.0 green:199/255.0 blue:204/255.0 alpha:1.0];
    

    并且不要忘记正确的行高是 1 像素。创建对应UIView的代码:

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 640, 1/[[UIScreen mainScreen] scale])];
    view.backgroundColor = [UIColor colorWithRed:200/255.0 green:199/255.0 blue:204/255.0 alpha:1.0];
    

    【讨论】:

      【解决方案4】:
      [UIColor colorWithRed:224/255.0 green:224/255.0 blue:224/255.0 alpha:1.0];
      

      【讨论】:

        【解决方案5】:

        斯威夫特 3

        只需设置为 nil 即可恢复默认值。

        tableView.separatorColor = nil
        

        【讨论】:

        • 最佳答案在这里!
        【解决方案6】:

        R:224 G:224 B:224

        希望对你有帮助!

        【讨论】:

        • CGContextSetRGBStrokeColor(浮点数)是什么意思?
        【解决方案7】:

        要找出您 iOS 设备上的任何颜色,只需在模拟器中运行该应用程序,然后使用 Apple 的 DigitalColor Meter(在您的实用程序文件夹中)并将鼠标悬停在您需要信息的颜色上。或者,只需从手机抓取屏幕,在 Preview 中打开它,然后使用 DigitalColor Meter 读取颜色值。

        【讨论】:

          【解决方案8】:

          在 Swift 3.0.1 中,你可以这样做

          yourView.backgroundColor = UITableView().separ‌​atorColor
          

          【讨论】:

            【解决方案9】:

            FWIW:

            UIColor *defaultSeparatorColor = [UIColor colorWithRed:0.783922f green:0.783922f blue:0.8f alpha:1.0f];

            这是在模拟 iOS 9.0 时发现的——并注销 UITableView separatorColor 默认具有的浮点值。我没有发现这与其他答案中的任何值匹配,而是通过创建 UITableView *tempTable 来设置其他答案中的代码结果。

            【讨论】:

              【解决方案10】:
              UITableView * tempTable = [[UITableView alloc] init];
              
              [table setSeparatorColor:tempTable.separatorColor];
              [table setSeparatorStyle:tempTable.separatorStyle];
              table.backgroundView = tempTable.backgroundView;
              

              【讨论】:

                【解决方案11】:

                Screenshot -> Photoshop -> Pick Color Tool -> RGB(227, 227, 229)

                【讨论】:

                  【解决方案12】:

                  伙计们,这很简单:

                  UITableView().separatorColor
                  

                  【讨论】:

                    猜你喜欢
                    • 2018-07-14
                    • 1970-01-01
                    • 1970-01-01
                    • 2023-03-24
                    • 1970-01-01
                    • 2011-08-04
                    • 2013-12-04
                    • 2010-11-28
                    • 1970-01-01
                    相关资源
                    最近更新 更多