【问题标题】:Unable to change color of UISearchDisplayController无法更改 UISearchDisplayController 的颜色
【发布时间】:2023-04-11 07:24:01
【问题描述】:

我在UInavigationBar 上使用UISearchDisplayController,但UISearchDisplayController 的背景颜色与uinavigationbar 的颜色不匹配。我在 ma ViewDidLoad 中使用了以下代码,但没有变化我无法更改 UISearchDisplayController 的颜色

self.searchDisplayController.searchBar.tintColor = [UIColor clearColor];

【问题讨论】:

    标签: ios6 xcode4.5 uisearchdisplaycontroller


    【解决方案1】:

    UISearchDisplayController 不是界面元素。它是一个控制器,而不是一个视图。它没有颜色。

    【讨论】:

    • 我认为他理解这一点,但 UISearchDisplayController 有一个 searchBar 属性。他在他的代码示例中使用了它。
    【解决方案2】:

    我所做的是我创建了一个 UISearchBar 子类,并在 IB 中将 searchBar 设置为属于该子类的 UISearchDisplayController 部分。从那里我可以更改tintColorbackgroundColor。我需要这个的原因是因为UISearchBarUINavigationBar 中没有正确显示,这是我能想到的唯一方法,如何做到这一点。

    编辑

    您实际上可以使用UISearchDisplayController 的初始化程序initWithSearchBar:contentsController: 相对容易地做到这一点,但是您仍然需要继承UISearchBar


    这是我使用的代码。现在,如果您通过 IB 执行此操作,您只需要使用 initWithCoder: 但我创建了一个 setup 方法。以防万一,我需要在 IB 以外的地方再次使用它。

    - (id)initWithFrame:(CGRect)frame {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
            [self setup];
        }
        return self;
    }
    
    -(id) initWithCoder:(NSCoder *)aDecoder {
        if (self = [super initWithCoder:aDecoder]) {
            [self setup];
        }
        return self;
    }
    
    -(id)init {
        if (self = [super init]) {
            [self setup];
        }
        return self;
    }
    
    -(void) setup {
        self.backgroundColor = [UIColor clearColor];
        self.tintColor = [UIColor clearColor];
        for (UIView * view in self.subviews) {
            if ([view isMemberOfClass:NSClassFromString(@"UISearchBarBackground")]) {
                view.alpha = 0.0;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多