1. tableview 的头部 有44的偏移量

1>.设置 tableview的 属性

        tableView.scrollIndicatorInsets = UIEdgeInsets.zero
self.translatesAutoresizingMaskIntoConstraints = false
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
} else {
// Fallback on earlier versions
} 2>.在控制器设置属性
self.edgesForExtendedLayout = UIRectEdge(rawValue: 0)
if #available(iOS 11.0, *) {
extendedLayoutIncludesOpaqueBars = true
}else{
automaticallyAdjustsScrollViewInsets = false
}

  

2.获取VFL自定义view的宽和高

    func sizeToFitForView(temView:UIView) -> (height:CGFloat, width:CGFloat){
temView.setNeedsLayout()
temView.layoutIfNeeded()
let height = temView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
let width = temView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).width
return (height, width)
}

  

3.VFL自定义tableview的headerView 获取宽和高

    override func layoutSubviews() {
super.layoutSubviews()
sizeHeaderToFit()
}

  

    /// 重置 tableview的header的frame
private func sizeHeaderToFit() {
//FIXME: 这里一定要用过滤,不然会得到默认自带的headerView,高度还不可控
guard let headerView = tableView.tableHeaderView else { return }
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
let height = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
var frame = headerView.frame
frame.size.height = height
headerView.frame = frame
tableView.tableHeaderView = headerView
}

  

4.如果用VFL 设置 ScrollView约束子视图 宽度 给一个固定值 子视图高度 加上底部约束 就不用设置 contentsize

/// 添加ScrollView的子控件

    func setScrollVSubviews(){

        let vd : [String : UIView] = ["discountView":discountView,

                                      "shopInfoView": shopInfoView,

                                      "itemsView":itemsView,

                                      "employeesInfoView":employeesInfoView]

        vd.fastAddToView(scrollV)

        scrollV.fastAddConstraints("|[discountView(\(JY_DEVICE_WIDTH))]", vd)

        scrollV.fastAddConstraints("|[shopInfoView(\(JY_DEVICE_WIDTH))]", vd)

        scrollV.fastAddConstraints("|[itemsView(\(JY_DEVICE_WIDTH))]", vd)

        scrollV.fastAddConstraints("|[employeesInfoView(\(JY_DEVICE_WIDTH))]", vd)

        scrollV.fastAddConstraints("V:|[discountView][shopInfoView][itemsView][employeesInfoView]|", vd)

    }

  

iOS 11 scroll滚动偏移,tableview偏移44,获取view的宽和高的更多相关文章

  1. 《iOS 11 安全区域适配总结》

    本文来自于腾讯Bugly公众号(weixinBugly),作者:sonialiu,未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/W1_0VrchCO50owhJ ...

  2. iOS 11 导航栏 item 偏移问题 和 Swift 下 UIButton 设置 title、image 显示问题

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  3. iOS 11 ScrollView偏移问题解决

    if (@available(iOS 11.0, *)){//避免滚动视图顶部出现20的空白以及push或者pop的时候页面有一个上移或者下移的异常动画的问题 [[UIScrollView appea ...

  4. tableview偏移

    tableview偏移 方法一:改变edgesForExtendedLayout self.edgesForExtendedLayout = UIRectEdgeNone; 将edgesForExte ...

  5. ios中iframe的scroll滚动事件替代方法

    在公众号的开发中,遇到ios中iframe的scroll滚动事件失效,在此做下记录. 因为接口获取的数据必须放在iframe中展示,滚动到底部按钮变亮,如图: 代码如下: <!DOCTYPE h ...

  6. iOS中 自定义cell分割线/分割线偏移 韩俊强的博客

    在项目开发中我们会常常遇到tableView 的cell分割线显示不全,左边会空出一截像素,更有甚者想改变系统的分割线,并且只要上下分割线的一个等等需求,今天重点解决以上需求,仅供参考: 每日更新关注 ...

  7. 你可能需要为你的 APP 适配 iOS 11

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/AZFrqL9dnlgA6Vt2sVhxIw 作者:s ...

  8. iOS 11和xcode9

    最近发现了比较奇怪的问题,就是 ios10.几以前的版本,用xcode9 编写的程序   如果程序写的table是  plain的  ,那么  在  ios10.几及以下版本都会显示成group样式, ...

  9. iOS - 适配iOS 11

    http://www.10tiao.com/html/330/201707/2653579210/1.html 存档 导语:iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆.动态的新风格. ...

随机推荐

  1. [UE4]移动设备贴图消失

    pc版本是支持直接使用psd文件作为贴图文件,但移动设备就不支持了.

  2. 第8章 信号(6)_贯穿案例2:mini shell(3)

    4. 贯穿案例2:mini shell(3) (1)之前存在问题 ①刚运行时,mshell作为前台进程.运行的其他命令会被加入新的进程组,并且调用tcsetpgrp将这个进程组设置为前台进程组,因此m ...

  3. redis windows dll 下载

    https://pecl.php.net/package/redis http://blog.csdn.net/leesin2011/article/details/72801629 http://w ...

  4. jshint在bat批处理中闪退,代码中无法调用的问题

    先说解决办法:加个call eg: call jshint --version Pause 具体原因有空再更

  5. selenium+python自动化90-unittest多线程执行用例

    前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时... 那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线 ...

  6. quartz 定时任务的增删改

    参考:  https://blog.csdn.net/llmys/article/details/81069863

  7. mysql 5.7新特新 操作json 数组

    ; UPDATE EDI.edi_history SET response_summary = JSON_REPLACE(response_summary, ; 对于json数组,使用$[*]  然后 ...

  8. leetcode530

    /** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNo ...

  9. IdUDPServer中文汉字乱码 及IdTCPClient

    官网 http://www.indyproject.org/docsite/html/frames.html?frmname=topic&frmfile=TIdTCPServer_OnExec ...

  10. Yii常用变量

    调用YII框架中 jquery:Yii::app()->clientScript->registerCoreScript('jquery'); 调用YII框架中 jquery:Yii::a ...