iOS 13动画视图未更改框架

Col*_*ers 11 objective-c uikit ios ios13

我有一个在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))
         */
    }];
}
Run Code Online (Sandbox Code Playgroud)

}

Ami*_*n3t 11

iOS 13中的布局系统有所不同,我们遇到了相同的问题,在本例中,是layout从切换automaticTranslates Mask Into Constraints解决此问题。

在此处输入图片说明


小智 8

您可以使用yourview.layer.frame代替yourview.frame对我有用。