Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 向UITableViewCell添加边距_Ios_Swift_Uitableview - Fatal编程技术网

Ios 向UITableViewCell添加边距

Ios 向UITableViewCell添加边距,ios,swift,uitableview,Ios,Swift,Uitableview,我试图获得一个我在草图上模拟出来的视图。我在Android上复制了它,因为我在那个平台上做得很好。我对iOS很在行,但UI是我的弱点 我扩展了一个UIViewController,在我的故事板上,顶部是视图,底部是表视图。我遇到的问题是将UITableViewCell置于应用程序本身的中心位置。下面是我尝试过的解决方案。但是,它只是把一切都挤到了顶端。注意。我使用UIView在UITableViewCell func configureTableView() { //First One

我试图获得一个我在草图上模拟出来的视图。我在Android上复制了它,因为我在那个平台上做得很好。我对iOS很在行,但UI是我的弱点

我扩展了一个
UIViewController
,在我的故事板上,顶部是视图,底部是表视图。我遇到的问题是将
UITableViewCell
置于应用程序本身的中心位置。下面是我尝试过的解决方案。但是,它只是把一切都挤到了顶端。注意。我使用
UIView
UITableViewCell

func configureTableView() {
    //First One I tried then later commented it out
    loanStateTable.rowHeight = UITableViewAutomaticDimension
    loanStateTable.scrollToNearestSelectedRowAtScrollPosition(UITableViewScrollPosition.Middle, animated: true)

    //Second One I tried
    var edgeInset = UIEdgeInsets(top: 16, left: 16, bottom: 0, right: 16)
    loanStateTable.contentInset = edgeInset
}
故事板视图

任何帮助都将不胜感激。谢谢

输出:


从您的屏幕截图来看,您的自动布局系统和动态单元格似乎有问题。因此,建议阅读这篇非常好的关于堆栈溢出的文章,它解释了如何使用自动布局构建动态单元。需要考虑的一个重要问题是,用自动布局创建视图非常快速直观,但从性能的角度来看,它非常昂贵。对于
UITableView
而言,此问题更为突出,滚动可能会导致不平稳。如果您有简单单元(只有少数视图和具有少数级别的视图层次),则可以,但对于自动布局管理器,我建议:

  • 如果所有单元格的高度相同,请为属性
    estimatedRowHeight
    指定一个值
  • 如果单元格具有不同的高度,则执行
    UITableViewDelegate
    tableView方法(uu2;:estimatedheightforrowatinexpath:)

关于边距问题,我建议将
UIView
嵌套在单元格的
contentView
中,并将其用作单元格所有其他视图的容器。通过这种方式,您可以在此视图容器和
contentView
之间添加左右边距,以便将其居中。

我不知道是否理解您的问题。我以为你们的问题是将屏幕上的两行垂直居中。我的代码就是这样做的

方法:

我通常会在游戏开始和/或结束时添加额外的单元格
UITableView


我希望这有帮助

一切保持原样。不要尝试插入整个TableView。改为在TableViewCell内创建容器视图:

设置行高:

同样在代码中:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 160.0
}
指定到边的正确距离:

现在添加元素并指定约束:

不要忘记设置cellIdentifier:

模拟器中的结果:


如果您想在引擎盖下查看它:

您可以添加一个屏幕截图,显示您获得的输出。在运行cmd+s的模拟器上,它会将屏幕截图保存到桌面。你想让这两个单元格垂直居中吗?我已经添加了输出。是的,我想让它们居中vertically@hasan83我已经更新了这个问题。我想我的限制让它变得糟糕和移位你在系统板上创建了这个单元吗?显示出来。另外,解释一下你有哪些部分和单元格我试过了你的答案,它也成功了…谢谢
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 160.0
}