全部,
我正在拼命地编写一种方法,该方法将以一种“向上滑动”的效果动画添加子视图,其中视图从特定点滑到屏幕上。我可以让 UIImageView 工作,但我有一段时间将它应用到 UIPickerView。发生的情况是,UIPickerView 仅移动和动画大约 1/4 的高度。UIImageView 真正以 0 的高度开始并向上滑动到屏幕上。
到目前为止,这是我的代码:
+ (void) slideupView:(UIView*) view duration:(CGFloat) duration completion:(void (^)(BOOL
finished)) completion {
CGRect endBounds = view.bounds;
CGRect startBounds = endBounds;
startBounds.size.height = 0;
view.bounds = startBounds;
view.contentMode = UIViewContentModeTop;
view.clipsToBounds = YES;
view.layer.anchorPoint = CGPointMake(0.5, 1.0);
CGPoint pos = view.layer.position;
pos.y += (endBounds.size.height / 2);
view.layer.position = pos;
[UIView animateWithDuration:duration delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
view.bounds = endBounds;
}
completion:completion];
}
从我读过的内容来看,听起来鼓励的方法是使用边界矩形而不是框架,因为如果您修改了变换,框架方法将不起作用。
我还读到不能改变 UIPickerView 的高度,所以我想知道这是否是这个问题的原因。不可否认,我还没有在任何其他 UIView 子类上尝试过它。
有什么想法吗?有更好的方法吗?我只想在屏幕上动画视图,类似于呈现模态视图控制器的视图,除了我不希望它覆盖整个屏幕。我只想要一个向上滑动的效果,就像键盘出现在屏幕上一样。
谢谢!贾斯汀