我在UIView中有一个元素,其约束条件指定它应始终与视图底部相距10像素。然后,我尝试动画化此视图的高度,以便它看起来向下滑动屏幕。根据约束条件,该元素应始终距视图底部10像素。当我像这样添加视图时,这仍然是正确的...
printView *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"printView"];
[self addChildViewController:vc];
vc.view.frame = CGRectMake(0, 60, vc.view.frame.size.width, HEIGHT);
vc.view.layer.masksToBounds = FALSE;
[vc.view.layer setShadowOffset:CGSizeMake(0.0, 5.0)];
[vc.view.layer setShadowOpacity:0.8];
vc.view.layer.shadowColor = [[UIColor blackColor] CGColor];
vc.view.layer.shadowRadius = 8;
vc.view.clipsToBounds = TRUE;
[self.view insertSubview:vc.view aboveSubview:docWebView];
我可以将HEIGHT更改为任何我想要的高度,并且该元素始终与视图底部相距10像素。问题出现在我尝试动画化高度时。
printView *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"printView"];
[self addChildViewController:vc];
vc.view.frame = CGRectMake(0, 60, vc.view.frame.size.width, 0);
vc.view.layer.masksToBounds = FALSE;
[vc.view.layer setShadowOffset:CGSizeMake(0.0, 5.0)];
[vc.view.layer setShadowOpacity:0.8];
vc.view.layer.shadowColor = [[UIColor blackColor] CGColor];
vc.view.layer.shadowRadius = 8;
vc.view.clipsToBounds = TRUE;
[self.view insertSubview:vc.view aboveSubview:docWebView];
[UIView animateWithDuration:5.0 animations:^{
vc.view.frame = CGRectMake(0, 60, vc.view.frame.size.width, 200);
[self.view setNeedsDisplay];
}];
约束条件不再受到尊重,而是视图与元素始终相距10像素的滑入效果已不存在,因为元素不随视图移动。希望我能够解释清楚。换句话说,我想实现地图被拉下的效果,但实际上看起来像地图已经在那里,只是一张覆盖在上面的纸被拿走了。感谢您的帮助。