是否可以在 tableView 之后放置 UIWebView?
Posted
技术标签:
【中文标题】是否可以在 tableView 之后放置 UIWebView?【英文标题】:is it possible to put a UIWebView after tableView? 【发布时间】:2011-03-01 18:22:45 【问题描述】:我正在使用基于导航的应用程序。它解析提要并在 tableView 中显示数据。在我的主 tableView 中,我想在最后插入一个 UIWebView。是否有可能使该 tableView 有点小并在那之后放置一个 UIWebView ?谢谢
【问题讨论】:
【参考方案1】:基于导航的应用程序模板使用 UITableViewController。当您将此类更改为更通用的 UIViewController 并添加您的 tableView 和 webview 时,您可以这样做。
改变
@interface RootViewController : UITableViewController
@end
进入
@interface RootViewController : UIViewController
UITableView *tableView;
UIWebView *webView;
@property (nonatomic, retain) IBOutlet UITableView *tableView;
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@end
然后在界面生成器中打开 RootViewController.xib。
-
删除tableView。
从库中添加一个视图。
Control-单击-从文件所有者拖动到视图上,然后选择视图出口。
在视图中添加一个 TableView。根据您的需要调整它的大小。
Control-Click-Drag 从文件所有者到 tableview。选择 tableView 插座。
CC-从 tableview 拖动到文件所有者,选择委托和数据源。
添加 UIWebView。现在你应该知道该怎么做了。
【讨论】:
是的,它工作正常。谢谢。但有一个问题。当我单击某个单元格时,其 DetailView 会显示其详细信息。当我回去时,我点击的那个单元格仍然是蓝色的。就像当你单击某个单元格时它变成蓝色一样。当我回到主 tableView 时,如何摆脱那种蓝色。谢谢 您可以将[tableView deselectRowAtIndexPath:indexPath animated:YES];
添加到您的 didSelect... 方法中【参考方案2】:
是的,可以尝试在索引 0 处插入子视图
UITableViewCell *cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:@"cell"] autorelease];
UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height)];
NSString *html = @"some string";
[webview loadHTMLString:html baseURL:nil];
[webview setBackgroundColor:[UIColor clearColor]];
[webview setOpaque:NO];
[cell insertSubview:webview atIndex:0];
return cell;
【讨论】:
【参考方案3】:我认为您不能限制 UITableView 的高度以便在其后附加 UIWebView。但是你总是可以在你的视图层次结构中将 UIWebView 放在 UITableView 的前面,如果这适合你的话——但它会一直在你的屏幕上可见,即在向下滚动到你桌子的尽头。
如果您需要向下滚动并然后显示网络视图,也许您可以将它放在表格视图单元格中(显然是最后一个)。
【讨论】:
如果它一直可见就可以了。但我希望它像工具栏一样位于屏幕的末尾。如何将 UIWebView 放在 UITableView 前面? 您完全可以将 UITableView 对象的框架设置为您想要满足您需求的任何内容。你可以在同一个视图控制器中同时拥有 UITableViews 和其他 UIKit 元素。以上是关于是否可以在 tableView 之后放置 UIWebView?的主要内容,如果未能解决你的问题,请参考以下文章
在底部加载最近的消息并放置一个加载旧消息按钮以在 TableView 上加载旧消息
在 UITableViewController 子类中的 tableView 后面放置一个 UIImageView
行分隔符上的标签 - Swift Tableview - 每小时日历