【问题标题】:UITableViewController UI issues in swiftswift中的UITableViewController UI问题
【发布时间】:2014-08-10 17:14:41
【问题描述】:
我正在使用 Parse 为我的应用设置登录系统。当用户登录时,他们会被带到一个 TableViewController 中,其中有不同的选项可供选择。出于某种原因,TableView 一直通过状态栏出现,看起来不太好。另外,在我的代码中设置了 TableView 的标题,但该标题没有显示出来。下面是 TableViewController 的属性。
这里是状态栏,应该是标题。
我该如何解决这个问题?
【问题讨论】:
标签:
ios
uitableview
swift
【解决方案1】:
听起来您希望在视图顶部有一个 UINavigationBar。这很容易做到!
无论您在哪里/显示您的 TableViewController(也许现在看起来像这样)
MYTableViewController *vc = [[MYTableViewController alloc] initWithNibName:nil bundle:nil];
[self presentViewController:vc];
改为执行以下操作:(在此处编造一个类名)
MYTableViewController *vc = [[MYTableViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentViewController:navController];
或者,如果您使用故事板来展示您的 VC(看起来您至少在某些部分使用了故事板)
只需拖动一个 Navigation Controller 对象并重新路由它带来的 ViewController
哦,是的,'Title' 属性主要用于 UITabBarController 容器。当您使用导航控制器进行设置时,您将能够通过设置来设置它的标题
self.navigationItem.title = @"Test"
或在 Nib 中通过选择新出现的导航栏并更改标题属性;如果您使用 nib 方法,您会看到它。
【解决方案2】:
我认为你应该为 tableview 设置一些约束。
为了清楚起见,我创建了一个只包含一个 viewController 的小项目,它有一个 tableview 作为它的子视图。之后,我通过以下步骤为 tableView 附加一些约束:
1.选择storyboard中的tableview;
2.点击菜单中的Editor->Pin;
3.选择“前导空间到超级视图”、“尾随空间到超级视图”、“顶部空间到超级视图”、“底部空间到超级视图”
4.打开实用程序区域并选择“显示尺寸检查器”。编辑约束以确保“top space to superview”的值等于20(因为20points是状态栏的高度),而其他三个约束的值等于0。
完成这些后,您将创建一个位于状态栏下方 20 点的 tableview。
我认为发布一些图片会更好,但我是 stackflow 的新手,所以我没有足够的声誉来发布图片,很抱歉。