尝试以编程方式了解iOS 9.3支持的布局约束

时间:2018-01-19 21:36:02

标签: ios swift ios9.3

我有一个带有navigatonController的tabViewController作为选项卡1. navigationController的根视图是listView,选择一个项目将pageViewController推送到堆栈。 pageVC管理同一viewController的数组,该数组具有带动态内容的scrollView并垂直滚动。 scrollView使用以下代码固定到viewController的锚点:

MySQLHandler.prototype.query = function (queryString, params, callback) {
  this.logger.log(queryString);

  let _logger = this.logger;
  this.mysqlConn.getConnection(
    function(err, connection) {
      if(err) {
        _logger.error(err);
        return callback(err, null);
      }
      connection.query(queryString, params, function(err, success) {
        connection.release();

        if(err) {
          _logger.error(err);
          return callback(err, null);
        }
        return callback(null, success);
      });
    }
  );
};

我需要支持iPhone 4s(iOS 9.3)设备。

scrollView和滚动中的动态内容在iOS 11设备上按预期工作,内容从导航栏下方开始,滚动停在标签栏的顶部。

我遇到的问题是iOS版本低于11. scrollView内容最初显示正确,但如果我点击或滚动内容,顶部移动到导航栏后面,我再也看不到scrollView的顶部了。对于scrollView和标签栏的底部也是如此。

我已经为edgesForExtendedLayout,scrollView insets等尝试了几个堆栈建议,但找不到合适的解决方案。理想情况下,我希望以编程方式理解约束,布局指南等,并且任何指向教程的链接都会很有用。

1 个答案:

答案 0 :(得分:0)

你可以在其他地方试试吗

  let navBarView = self.navigationController.navigationBar

  let tabBarView = self.tabBarController.tabBar

  NSLayoutConstraint.activate([
        scrollView.topAnchor.constraint(equalTo: navBarView.bottomAnchor, constant: 0),
        scrollView.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 0),
        scrollView.rightAnchor.constraint(equalTo: view.rightAnchor, constant: 0),
        scrollView.bottomAnchor.constraint(equalTo: tabBarView.topAnchor, constant: 0)
        ])