选择 UITableViewCell 后如何显示 UIWebView?
Posted
技术标签:
【中文标题】选择 UITableViewCell 后如何显示 UIWebView?【英文标题】:How to show a UIWebView after UITableViewCell is selected? 【发布时间】:2017-07-13 20:41:41 【问题描述】:我目前将我的根视图控制器作为带有 NavigationController 的 TableViewController。
window?.rootViewController = UINavigationController(rootViewController: FeedTableViewController(style: .grouped))
当一个单元格被选中时,在我的 TableViewController 中,我想加载一个带有 html 字符串的 WebView。
我的代码目前是:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
guard let layout = TableViewLayout(indexPath: indexPath) else fatalError()
switch layout
case .items:
// load web view with html from a string
default:
break
我已经看到如何将 HTML 字符串加载到 WebView 中,但我不知道如何使该 WebView 成为选择单元格时显示的视图。如果可能的话,我还需要这个来不破坏 NavigationController。
【问题讨论】:
您的网页视图在哪里?在另一个视图控制器中或与您的表相同?这是通过情节提要还是以编程方式实现的? @GIJOW 以编程方式。我根本没有 WebView。我需要创建一个,但我不确定在哪里 但是您想在与您的表格相同的视图控制器中显示它吗? 是的,如果保留 NavigationController 【参考方案1】:您的 cmets 很难知道“是否保留 NavigationController”。
但我认为它至少可以给你一个线索:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
guard let layout = TableViewLayout(indexPath: indexPath) else fatalError()
switch layout
case .items:
let webView = UIWebView(frame: CGRect(x: tableView.frame.origin.x, y: tableView.frame.origin.y, width: tableView.frame.size.width, height: tableView.frame.size.height)
let testHTML = Bundle.main.path(forResource: "privacy", ofType: "html")
do
let contents = try NSString(contentsOfFile: testHTML!, encoding: String.Encoding.utf8.rawValue)
let baseUrl = NSURL(fileURLWithPath: testHTML!) //for load css file
webView.loadHTMLString(contents as String, baseURL: baseUrl as URL)
catch
print("error")
self.view.addSubview(webView)
default:
break
它将在与您的表格视图相同的框架中添加一个 webView。
别忘了设置你的 html 来源:
let testHTML = Bundle.main.path(forResource: "privacy", ofType: "html")
【讨论】:
我不能再回到我的 TableView,但我想我可以解决这个问题。您的回答非常清楚。 很高兴为您提供帮助。我刚刚更新了“更迅速的 3”的答案。希望对你有帮助以上是关于选择 UITableViewCell 后如何显示 UIWebView?的主要内容,如果未能解决你的问题,请参考以下文章
如何选择并突出显示 UICollectionView,如 UITableViewCell?
如何在 UITableView 的编辑模式下只显示复选标记选择而不选择整个 UITableViewCell?
选择后,您可以为 UITableViewCell 上的高度变化设置动画吗?