使用UISearchBar时使其余视图变灰

时间:2012-07-11 20:24:34

标签: objective-c ios xcode uisearchbar

我想模仿似乎是使用UISearchBar的标准UI,现在我尝试将其余视图变为灰色,当我开始搜索时,我尝试通过设置背景颜色来实现视图为灰色,但我在UITableView中使用了部分,并且它们没有变灰。任何人都有这样的原因吗?

UITableView when using searchbar

2 个答案:

答案 0 :(得分:5)

你没有看到标题标题渐变为灰色的原因是因为它们是在灰色背景上绘制的,并且是不透明的;换句话说,他们的alpha是1.

如果您正在寻找获得所需效果的建议,我的第一反应就是添加一个重叠UIView作为您想要“变灰”的区域的子视图,并更改其某些事件发生时的背景颜色。像这样:

// You have to choose what view is the one that needs to be grayed out.
// I'll call the view you want to gray out "viewToBeGrayed"

UIView *grayOverlay = [[UIView alloc] initWithFrame:viewToBeGrayed.frame];

// Initially, the overlay should be clear
[grayOverlay setBackgroundColor:[UIColor clearColor]];

[viewToBeGrayed addSubview:grayOverlay];

然后,当您想要“灰显”viewToBeGrayed时,只需将grayOverlay的背景颜色更改为某个半透明灰度值:

[grayOverlay setBackgroundColor:[UIColor colorWithWhite:0.5 alpha:0.5]];

最后,当您想摆脱“灰显”效果时,只需将视图设置为清除:

[grayOverlay setBackgroundColor:[UIColor clearColor]];

这应该是一个好的起点。如果您需要任何其他帮助,请发表评论。

答案 1 :(得分:3)

使用标准UISearchController来满足您的tableview搜索需求。