使用背景图片加载时,无法使searchResultsTableView单元格完全可见。细胞看起来很弱,即使在选中时也不会从背景图像视图中脱颖而出。有什么建议吗?
- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView {
for (UIView *view in controller.searchResultsTableView.subviews) {
//if ([view isKindOfClass:[UIImageView class]]) {
[view removeFromSuperview];
//}
}
UIImage *patternImage = [UIImage imageNamed:@"background_newer.png"];
UIImageView * backgroundImageView = [[UIImageView alloc] initWithImage:patternImage];
//backgroundImageView.opaque = NO;
backgroundImageView.alpha = 0.9;
controller.searchResultsTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
controller.searchResultsTableView.backgroundColor = [UIColor clearColor];
[controller.searchResultsTableView addSubview:backgroundImageView];
[controller.searchResultsTableView sendSubviewToBack:backgroundImageView];
controller.searchResultsTableView.rowHeight = 25;
[patternImage release];
[backgroundImageView release];
}
除了在此委托方法中分配新的UITableViewCell(在searchResultsTableView中)之外,我没有做任何其他事情:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { .... }
感谢您的任何更正!
(我在iPhone模拟器3.1.2上)
答案 0 :(得分:1)
@Jessedc
感谢您的建议。尚未尝试过您的代码。
我解决了这个问题(在我看到你的回复之前),每当searchResultsTableView加载时,在searchResultsTableView后面的主tableview上设置hidden = YES,并在搜索结束时隐藏= NO。主tableview在imageview上设置了backgroundColor = [UIColor clearColor](加载了与我原来的searchResultsTableView代码相同的图像)。
这种新布局如前所述: - )。
答案 1 :(得分:1)
是否尝试显示静态背景图片,表格文字滚动到顶部? 我想你的代码可能会混淆(可能)。
自定义表通常在viewWillAppear方法中完成。所以这段代码应该去那里:
UIImage *patternImage = [UIImage imageNamed:@"background_newer.png"];
UIImageView * backgroundImageView = [[UIImageView alloc] initWithImage:patternImage];
//backgroundImageView.opaque = NO;
backgroundImageView.alpha = 0.9;
controller.searchResultsTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
controller.searchResultsTableView.backgroundColor = [UIColor clearColor];
[controller.searchResultsTableView addSubview:backgroundImageView];
[controller.searchResultsTableView sendSubviewToBack:backgroundImageView];
controller.searchResultsTableView.rowHeight = 25;
[patternImage release];
[backgroundImageView release];
接下来,在您的委托方法 searchDisplayController:willShowSearchResultsTableView 中,您不是指传入的tableview对象,而是通过顶层调用它(不必要吗?)
将表格设置代码移动到viewWillAppear中。 如果这有帮助,或者您可以提供更多信息/代码,请告诉我。
答案 2 :(得分:0)
在我看来,你正在努力设置你的桌面视图的背景。我不知道这是100%的问题,但你应该像这样设置你的UITableView背景:
controller.searchResultsTableView.backgroundColor = [[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background_newer.png"]]autorelease];