ios进阶

UIViewController的view的frame问题

2019-08-16  本文已影响0人  Coder_Cat

edgesForExtendedLayout(扩展布局的边缘)

//swift
open var edgesForExtendedLayout: UIRectEdge
//swift
public struct UIRectEdge : OptionSet {
    public init(rawValue: UInt)
    public static var top: UIRectEdge { get }
    public static var left: UIRectEdge { get }
    public static var bottom: UIRectEdge { get }
    public static var right: UIRectEdge { get }
    public static var all: UIRectEdge { get }
}
//objectivec
@property(nonatomic,assign) UIRectEdge edgesForExtendedLayout NS_AVAILABLE_IOS(7_0); // Defaults to UIRectEdgeAll
//objectivec
typedef NS_OPTIONS(NSUInteger, UIRectEdge) {
    UIRectEdgeNone   = 0,
    UIRectEdgeTop    = 1 << 0,
    UIRectEdgeLeft   = 1 << 1,
    UIRectEdgeBottom = 1 << 2,
    UIRectEdgeRight  = 1 << 3,
    UIRectEdgeAll    = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight
} NS_ENUM_AVAILABLE_IOS(7_0);
OC Swift 说明
UIRectEdgeNone UIRectEdge(rawValue: 0) 不做任何扩展,如果有navigationBar和tabBar时,self.view显示区域在二者之间
UIRectEdgeTop top 扩展顶部,self.view显示区域是从navigationBar顶部计算面开始计算一直到屏幕tabBar上部
UIRectEdgeLeft left 扩展左边,上下都不扩展,显示区域和UIRectEdgeNone是一样的
UIRectEdgeBottom bottom 扩展底部,self.view显示区域是从navigationBar底部到tabBar底部
UIRectEdgeRight right 扩展右边,上下都不扩展,显示区域和UIRectEdgeNone是一样的
UIRectEdgeAll all 上下左右都扩展,及暂满全屏,是默认选项

translucent (tabBar和navigationBar的半透明属性)

UIScrollView及其子控件有时会向下偏移问题

hidesBottomBarWhenPushed的正确使用

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        let vc = ViewController()
        vc.hidesBottomBarWhenPushed = true
        self.navigationController?.pushViewController(vc, animated: true)
    }

总结


上一篇 下一篇

猜你喜欢

热点阅读