All
Я отчаянно пытаюсь написать метод, который будет анимировать добавление подпредставления в виде эффекта «скольжения вверх», когда вид скользит по экрану с определенной точки. Я могу заставить работать 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.
Есть мысли? Есть ли лучший подход? Я просто хочу анимировать вид на экран, аналогично представлению модального вида контроллера, за исключением того, что я не хочу, чтобы он покрывал весь экран. Я просто хочу эффект слайда, например, когда на экране появляется клавиатура.
Спасибо!
Justin