我想设置UITableView以匹配表视图中所有内容的高度.
这是我的故事板
这个问题是顶部和底部的ImageView在屏幕上始终是静态的.
假设桌面视图中有10个项目,但由于屏幕尺寸限制,只有7个项目显示.我希望在用户能够看到底部的ImageView之前显示所有10个.(顺便说一句,所有3个视图,即图像视图和tableview都在uiscrollview中)
理想
我必须处理的一些其他限制是表视图中的项目数是动态的,这意味着它可以是任何通常小于10的数量,我稍后将从api中检索.根据内容,细胞高度也是动态的.
我刚刚开始使用一些简单的代码
class ExampleViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var items: [String] = [
"Item 01", "Item 02", "Item 03", "Item 04", "Item 05",
"Item 06", "Item 07", "Item 08", "Item 09", "Item 10"]
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.items.count;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
cell.textLabel?.text …Run Code Online (Sandbox Code Playgroud) 我的公司最近着手将平台架构从单片架构更改为微服务架构。整个迁移可能要花费数年,所以到现在为止,我们仍然需要维护当前的整体应用程序,同时缓慢地拆除该应用程序。
我们暂时通过面向服务的体系结构为某个模块(其中数据库仍连接到单体应用程序的数据库)拆除了单体应用程序,而另一些则直接过渡到微服务(如果适用,微服务拥有自己的数据库)。
我们会随时准备发布功能,而不是遵循发布窗口。每个团队都有自己的阶段来管理该阶段,因此我们有多个阶段环境(总共11个),每个阶段都有自己的一组遗留的整体应用程序。
在过渡到微服务架构时(虽然我了解到,当我们完全过渡到微服务架构时,整个公司只有1个阶段),我们将需要维护所有这些阶段,这意味着我们将需要拥有一个阶段的副本。每个登台环境中的微服务。
(并不是要在此解决方案的方向上指导答案。如果在其他方向上有任何答案,则更可取,因为我们可以有更多选择和变化来考虑利弊),我们的想法之一是针对每个问题在db中,我们还有另外一列来标记此数据行用于哪个阶段。因此,我们可以维护1个微服务的单个实例以进行多个阶段。问题在于,对于每个API调用,客户端都需要指定用于哪个阶段。这使每个服务的开发变得复杂(需要满足要筛选的登台数据库的需求),使端点更难以调用(因为您需要指定需要访问的登台数据库)),更重要的是,这些是多余的代码,这些代码在生产中应该没有。
我们面临的问题是,随着微服务数量的增长,这将占用大量服务器资源(我们决定使用本地服务器来托管我们的kubernetes和Proxmox VM来保留传统的整体组件)。是否有任何基础架构可以减少为此所需的资源?
如何在 UITableView 底部放置“cellBOTTOM”?我想过使用表格视图页脚,但这会导致如果没有足够的单元格来填满整个屏幕,页脚不会粘在屏幕底部,而是正好在“cellLAST”的正下方。我需要“cellBOTTOM”位于屏幕底部和表格底部
+--------------------+ +--------------------+ +--------------------+
| SCREEN | | SCREEN | | SCREEN |
| +----------------+ | | +----------------+ | | +----------------+ |
| | TABLE | | | | TABLE | | | | TABLE | |
| | +------------+ | | | | +------------+ | | | | +------------+ | |
| | | cellLAST | | | | | | cell 1 | | | | | | cell 1 | | |
| | +------------+ …Run Code Online (Sandbox Code Playgroud) enum SearchBarAction {
case Cancel
case Bookmark
case Location
case Category
case Filter
}
@objc protocol SearchBarNavigatorDelegate: class {
optional func searchBarNavigator(clicked: SearchBarAction)
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误
Method cannot be a member of an @objc protocol because the type of the parameter cannot be represented in Objective-C
Run Code Online (Sandbox Code Playgroud)
我需要这个方法是可选的,因此我不能删除@objc来解决这个问题.
在将枚举作为参数传递给方法时,有没有办法使用可选的协议方法?