【问题标题】:How to control appearance of SegmentedControl within a DataElement如何控制 DataElement 中 SegmentedControl 的外观
【发布时间】:2020-04-24 00:38:06
【问题描述】:

我正在使用以下 DataElement 填充表格视图,

DataElement *ee;
ee  = [[DataElement alloc] initSegmentedControlWithLabel:@"Set Value" defaultValue:[s intValue] items:[NSArray arrayWithObjects:@"No", @"Yes", nil]];

[ee setTextColor;[UIColor blueColor]];

最后一行改变了标签“Set Value”的颜色

我想更改 SegmentedControl 的颜色,但找不到任何方法。我知道如何设置独立 SegmentedControl 的 tintColor 和 Background 颜色,当它是 DataElement 的一部分时,它似乎没有方法。

任何帮助将不胜感激。

【问题讨论】:

    标签: objective-c xcode uisegmentedcontrol


    【解决方案1】:

    您只需在DataElement 类中添加一些辅助函数,就像setTextColor 一样,并将传递的参数设置为segmentedControl。请检查以下内容:

    有一个像下面这样的辅助方法:

    @interface DataElement: #Your SuperClass#
    
    -(void)setSegmentTintColor:(UIColor)color;
    @end
    
    @implementation DataElement {
        -(void)setSegmentTintColor:(UIColor)color {
            [segmentedControl setTintColor:[UIColor blueColor]];
        }
    }
    @end
    

    用法:

    DataElement ee*;
    
    //create an instance and access
    
    [ee setSegmentTintColor: [UIColor blue]];
    

    【讨论】:

    • 你能分享一下 .h 条目应该是什么吗?我收到一个错误
    • 我更新了我的答案。另外,在 Objective-c 中声明方法请参考 Apple 文档。
    • 我必须将此代码包含在导入的 DataElement 类中。 setSegmentTintColor 不是有效方法(尝试实现它时出错),但我可以使用 UISegmentedControl.appearance.tintColor=[UIColor greenColor]。运行一次,它会设置应用程序中所有分段控件的 tintColor,甚至设置按钮的背景颜色(当您按下它们时)。这是一个非常奇怪的结果。我做错了什么?
    • 上述代码中的@interface是.h文件声明,@implementation是.m文件定义。如果您也这样做,它应该可以工作。如果不是,请使用您的最新代码更新问题。
    猜你喜欢
    • 2020-08-26
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多