iOS 11 scroll滚动偏移,tableview偏移44,获取view的宽和高
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的宽和高的更多相关文章
- 《iOS 11 安全区域适配总结》
		
本文来自于腾讯Bugly公众号(weixinBugly),作者:sonialiu,未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/W1_0VrchCO50owhJ ...
 - 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 ...
 - iOS 11 ScrollView偏移问题解决
		
if (@available(iOS 11.0, *)){//避免滚动视图顶部出现20的空白以及push或者pop的时候页面有一个上移或者下移的异常动画的问题 [[UIScrollView appea ...
 - tableview偏移
		
tableview偏移 方法一:改变edgesForExtendedLayout self.edgesForExtendedLayout = UIRectEdgeNone; 将edgesForExte ...
 - ios中iframe的scroll滚动事件替代方法
		
在公众号的开发中,遇到ios中iframe的scroll滚动事件失效,在此做下记录. 因为接口获取的数据必须放在iframe中展示,滚动到底部按钮变亮,如图: 代码如下: <!DOCTYPE h ...
 - iOS中 自定义cell分割线/分割线偏移  韩俊强的博客
		
在项目开发中我们会常常遇到tableView 的cell分割线显示不全,左边会空出一截像素,更有甚者想改变系统的分割线,并且只要上下分割线的一个等等需求,今天重点解决以上需求,仅供参考: 每日更新关注 ...
 - 你可能需要为你的 APP 适配 iOS 11
		
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/AZFrqL9dnlgA6Vt2sVhxIw 作者:s ...
 - iOS 11和xcode9
		
最近发现了比较奇怪的问题,就是 ios10.几以前的版本,用xcode9 编写的程序 如果程序写的table是 plain的 ,那么 在 ios10.几及以下版本都会显示成group样式, ...
 - iOS - 适配iOS 11
		
http://www.10tiao.com/html/330/201707/2653579210/1.html 存档 导语:iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆.动态的新风格. ...
 
随机推荐
- 开发组件:ZeroMQ
			
ZeroMQ https://blog.csdn.net/w174504744/article/details/73187697
 - jenkins将构建成功或失败的信息发送给指定URL(eg: pomelo采用jenkins持续集成)
			
先提供一个思路供大家参考,想将构建成功或者失败的信息发送给指定URL的话,可以这样:1.A构建后触发另一个构建B,构建B执行某个插件2.插件的功能: (1)利用jenkins API获取构建A最 ...
 - pdb调试工具
			
调试--pdb pdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++). 命令 简写命令 作用 break b 设置断点 continue c 继续执行程序 list l 查看当前行的 ...
 - PHP把excel导入mysql数据库最常用的方法
			
Posted on 2011-03-25 09:16 PHP博客 阅读(1316) 评论(0) 编辑 收藏 引用 网摘 PHP把excel(xls)文件导入mysql数据库最常用的方法就是先把xls ...
 - 在 html中怎么获取中的参数
			
参考:https://blog.csdn.net/xqhys/article/details/68486215 eg: window.location.href="/user/update? ...
 - leetcode350
			
public class Solution { public int[] Intersect(int[] nums1, int[] nums2) { var len1 = nums1.Length; ...
 - JS检测当前设备是PC还是移动端
			
用到的时候找到的分享下,也是收藏下,本地收藏多了感觉找起来很麻烦 方法1: function IsPC() { var userAgentInfo = navigator.userAgent; var ...
 - 内容方框 fieldset
			
Title 登录 用户名 密码 <!DOCTYPE html><html lang="en"><head> <meta charset=& ...
 - License 校验
			
1:了解keytool 的一些命令 http://www.micmiu.com/lang/java/keytool-start-guide/ 本人在github找的一个demo:https://gi ...
 - Linux iptables 备忘
			
iptables主要通过存储在linux内核中的一个个表来控制IP包的.可以想象成excel表格.你可以自定义所需的iptables表.不过已经内置了三张队列表. filter 这是默认的表,包含了内 ...