当我按下工具栏上的按钮时,我有一个方法可以获取UIImage
的屏幕截图,然后模糊图像。然后将该图像放在UIImageView
中,并通过动画显示图像视图以填充屏幕。在图像视图动画完成后,我还会显示另一个UIView
。
我遇到的问题是第一次按下按钮时,图像视图不显示,但另一个UIView
(descriptionView)显示。
当我点击取消按钮时,我会在它之前短暂地看到屏幕底部的图像视图,并且descriptionView会像它们应该的那样消失。
按下初始按钮后,它全部工作并显示它应该的样子。只有在第一次点击按钮时才会出现此问题。
- (void)updateBlur {
UIGraphicsBeginImageContextWithOptions(self.poopMap.bounds.size, YES, 1);
[self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];
UIImage *screenshotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImage *blurredImage = [screenshotImage applyDarkEffect];
self.blurredImageView.image = blurredImage;
self.blurredImageView.hidden = NO;
[UIView animateWithDuration:0.4
animations:^{self.blurredImageView.frame = self.view.frame;}
completion:^(BOOL finished) {self.descriptionView.hidden = NO;}];
}
- (IBAction)placeMarkerPressed:(id)sender {
[self updateBlur];
self.poopMap.userInteractionEnabled = NO;
NSLog(@"Blurred Image Frame: %@", NSStringFromCGRect(self.blurredImageView.frame));
}
- (IBAction)cancelPressed:(id)sender {
self.descriptionView.hidden = YES;
[UIView animateWithDuration:0.4
animations:^{self.blurredImageView.frame = self.originalRect;}
completion:^(BOOL finished) {self.blurredImageView.hidden = YES;
self.poopMap.userInteractionEnabled = YES;}];
}
此第一张图片显示的问题仅在第一次点按按钮时发生。您可以看到descriptionView但图像视图不显示。
当我点击按钮时,第二张图像应该是什么样子。在第一次点击按钮后,它就像加班一样。 enter image description here