我有一个在iOS 13模拟器上的Xcode 10中编译的应用程序。在一个视图中,有一个“托盘”视图,在点击该视图时从底部显示,在iOS 12中它运行良好,在iOS 13中,水龙头调用了该方法,但是对框架的更改没有保存-我已经包含了输出从调试器中添加注释,以便您可以看到帧值的输出;
- (void) userClickActivityTray: (UITapGestureRecognizer *) gestureRecognizer { if(self.activityTrayShown) { /* (lldb) po self.activityTrayContainerView.frame (origin = (x = 0, y = 792), size = (width = 414, height = 104)) */ [self hideActivityTray]; } else { if (!self.activityTrayViewInitialFrameComputed) { self.activityTrayViewInitialFrameComputed = YES; self.activityTrayInitialFrame = self.activityTrayContainerView.frame; } /* (lldb) po self.activityTrayContainerView.frame (origin = (x = 0, y = 638), size = (width = 414, height = 224)) (origin = (x = 0, y = 638), size = (width = 414, height = 224)) (lldb) po self.activityTrayInitialFrame (origin = (x = 0, y = 792), size = (width = 414, height = 104)) (origin = (x = 0, y = 792), size = (width = 414, height = 104)) (lldb) */ [UIView animateWithDuration:0.25 animations:^{ self.activityTrayContainerView.frame = CGRectMake(self.view.bounds.origin.x, self.bottomView.frame.origin.y - self.activityTrayViewController.maximumHeight, self.view.bounds.size.width, self.activityTrayViewController.maximumHeight); self.activityTrayBackgroundView.alpha = 1.0; self.bottomView.alpha = self.dotsProgressView.alpha = 0; } completion:^(BOOL finished) { self.activityTrayShown = YES; /* (lldb) po self.activityTrayContainerView.frame (origin = (x = 0, y = 557), size = (width = 414, height = 305)) (origin = (x = 0, y = 792), size = (width = 414, height = 104)) */ }]; }
}
iOS 13中的布局系统有所不同,我们遇到了相同的问题,在本例中,是layout
从切换automatic
为Translates Mask Into Constraints
解决此问题。
您可以使用yourview.layer.frame代替yourview.frame对我有用。