我正在tableview应用程序中创建一个“收藏页面”菜单,用户可以在其中保存自己喜欢的网页,然后通过菜单更轻松地导航到它们。
程序会在设置应用中保存页面名称和每个收藏页面插槽的URL。默认URL为“clear”,表示还没有URL(即最喜欢的插槽未使用)。
当用户点击其所需收藏页面的tableview单元格时,该视图会切换到UIWebview
并加载该URL。我这样做了,如果网址isEqualToString @"clear"
,UIWebView
将无法加载显示,并且“无”将会发生。
但是当用户点击tableview单元格并将URL设置为“clear”时,该单元格仍以蓝色突出显示。这使得用户看起来没有清除tableview单元格。无论如何都要检查URL isEqualToString @"clear"
是否在此之前停止突出显示蓝色?
感谢。
答案 0 :(得分:1)
编辑:这是一种更好的方式(在willSelect中进行...在第一次点击时太晚了。)
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
if ( --THIS IS THE 'CLEAR' URL CASE-- ) {
// This will prevent the **appearance** of being selected
cell.selectionStyle = UITableViewCellSelectionStyleNone;
} else {
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
}
...
}
在didSelectCellForIndexPath ...
中 if ( -- 'CLEAR' CASE -- ) {
// Do nothing...
} else {
// do whatever you do for the selected case...
}
答案 1 :(得分:0)
您应该在tableView:willSelectRowAtIndexPath:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *url = [self urlForIndexPath:indexPath];
if ([url isEqualToString:@"clear"])
return nil;
return indexPath;
}
但如果您不想要蓝色突出显示,您还应该更改tableView:cellForRowAtIndexPath: