iPhoneX的带有TabBar的画面跳转时,位置跳动的问题

iPhoneX上,当带有tabbar画面跳转到下一个没有tabbar画面时,会发生瞬间的tabbar向上移动的现象,如图:

iPhoneX的带有TabBar的画面跳转时,位置跳动的问题_第1张图片

解决方法是强制设置frame:

swift 3,4

class ActionTabBar: UITabBar {

    override var frame: CGRect {
        get {
            return super.frame
        }
        set {
            var tmp = newValue
            if let superview = self.superview, tmp.maxY != superview.frame.height {
                tmp.origin.y = superview.frame.height - tmp.height
            }
            super.frame = tmp
        }
    }
}

Objective-C

@implementation ActionTabbar

- (void)setFrame:(CGRect)frame
{
    if (self.superview && CGRectGetMaxY(self.superview.bounds) != CGRectGetMaxY(frame)) {
        frame.origin.y = CGRectGetHeight(self.superview.bounds) - CGRectGetHeight(frame);
    }
    [super setFrame:frame];
}

@end

你可能感兴趣的:(IOS开发笔记)