2

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

使用搜索栏时的 UITableView

4

2 回答 2

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]];

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

于 2012-07-11T20:35:04.440 回答
3

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

于 2012-07-11T20:34:34.847 回答