用于从布局中膨胀视图的 iOS 模拟 (xib)
Posted
技术标签:
【中文标题】用于从布局中膨胀视图的 iOS 模拟 (xib)【英文标题】:iOS analog for inflating a view from a layout (xib) 【发布时间】:2016-10-24 18:02:34 【问题描述】:我是 ios 新手,正在尝试从 android 重写应用程序。 我在 Android 中所做的 - 我有一个布局 - 与 xcode 中的 nib 相同
然后我将这个视图膨胀多少次——就像 ListView(TableView 的 android 模拟)正在工作一样
我需要在 iOS 上执行此操作:
这意味着有一些容器,比如 Android 的水平 LinearLayout,我可以在其中添加 nib 和它们的类——比如 UITableViewCell 和填充数据。 当我问一位 iOS 开发人员时,他告诉我,由于复杂性和缺乏类似 android 的 ViewGroups,这几乎是不可能的,而且在 WebView 中做比在本地做更好。
那么请告诉我,有没有一种解决方案 - 将尽可能多的视图从一个 nib 扩展到另一个容器视图中?请用 Swift 回答,我完全不懂 Obj-c
【问题讨论】:
【参考方案1】:是的,您可以通过在 viewDidLoad 中向 Xib 注册您的 tableView 来做到这一点
tableView.registerNib(UINib(nibName: "CustomCellXib", bundle: nil), forCellReuseIdentifier: "CustomCell")
然后在委托方法中执行此操作
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as! CustomCell
cell.middleLabel.text = items[indexPath.row]
cell.leftLabel.text = items[indexPath.row]
cell.rightLabel.text = items[indexPath.row]
return cell
其中 CustomCellXib 是您的 Xib 文件名。 CustomCell 是您的 CustomCellXib 类 @"CustomCell" 是重用单元格的字符串标识符
请注意,您还必须实现其他几个委托方法才能完成 TableView 的工作。
【讨论】:
你看,除了 TableView 元素之外,还有许多其他的标签和开关以及其他东西在这个部分上方的屏幕上 是的,这就是答案中提到的。您可以在单元格内创建任何类型的视图。然后将单元格放入tableView。请搜索如何在xib中制作customCell并在tableView中使用。你会在那里找到大量的答案和教程。【参考方案2】:这里没有什么特别复杂的。这是一个有多个部分的常见 UITableView。
-
每个部分的红色文本标签应作为部分标题实现
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
//create a view here
-
自定义
UITableViewCell
带有灰色标签、红色 - 和 + 按钮。
自定义单元格应在其内容下方包含一个 UIImageView。由于第一行、中间行和最后一行不同,您应该根据单元格的 indexPath.row 在cellForRow
方法中设置三个图像之一。
附:不要听你的 iOS 开发者的意见。当您需要实现比默认的UITableView
更复杂的 UI 时,您不应该使用UIWebView
。很可能他是在开玩笑;)
【讨论】:
以上是关于用于从布局中膨胀视图的 iOS 模拟 (xib)的主要内容,如果未能解决你的问题,请参考以下文章