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]创建多把枪,使用Class,参数的对象类型

    先来说说函数输入参数的区别: 1.Object Reference 2.Class Reference 会出现可以让你选择一个类 3.Soft Object Reference 4.Soft Clas ...

  2. Java与C++语法的区别

    1. 注释可以在Java程序中起到文档标记的作用 类文档标记: 1)@version 2)@author 3)@param 4)@return 5)@exception 2. Java的字符占两个字节 ...

  3. unity3d中物体的控制

    一.物体的循环移动和旋转 思路:通过对时间的计算,每隔一段时间让物体旋转,实现来回移动. float TranslateSpeed = 0.02f; float TranslateSpeedTime ...

  4. IO基础知识

    传统的IO是阻塞的,BIO----基于流的模式,数据与Stream直接通信 NIO非阻塞的基于快的模式.数据与channel不直接交换数据,而是通过buffer进行数据交换. 基于文件的IO 基于网络 ...

  5. react 中state与props

    react 中state与props 1.state与props props是只读属性,只有在组件被实例化的时候可以赋值,之后的任何时候都无法改变该值.如果试图修改该值时,控制台会报错 only re ...

  6. 最强数据集50个最佳机器学习公共数据,可以帮你验证idea!

    1.  寻找数据集の奥义 根据CMU的说法,寻找一个好用的数据集需要注意一下几点: 数据集不混乱,否则要花费大量时间来清理数据. 数据集不应包含太多行或列,否则会难以使用. 数据越干净越好,清理大型数 ...

  7. node多进程

    内容: 1.多进程与多线程 2.node中多进程相关模块的使用 1.多进程与多线程 多线程:性能高:复杂.考验程序员 多进程:性能略低:简单.对程序员要求低 Node.js中默认:单进程.单线程,但是 ...

  8. PL/SQL 的一些用法

    变量的声明,赋值,打印(declare是pl/sql里面的用法 variable是sql*plus里面的用法,variable相当于一个sql*plus环境的全局变量,declare里定义的是pl/s ...

  9. 如何给echarts图表添加下载图表成图片的功能

    先打开一个现成的图表效果图,注意图中圈出的地方,如图   打开源码找到option,如图   在option下添加toolbox,如图   在toolbox下添加feature,如图   在featu ...

  10. Git----分支管理之创建与合并分支02

    在版本回退里,你已经知道 ,每次提交,Git都把它们串i成一条时间线,这条时间线就是一个分支,截至到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支,HEAD严格来说不是指向提交 ...