Учитывая, что рамки моего _palette является так:Тяжелая инициализация заставляет анимацию UIView не анимировать с первой попытки?
_palette.frame = CGRectMake(0,480,320,200);
У меня есть этот код здесь, чтобы скользить вверх/вниз UIView:
if(![_pallete superview]) {
[self.view addSubview:_pallete];
[self.view insertSubview:_tempViewPaletteListener belowSubview:_pallete];
[UIView animateWithDuration:0.3
animations:^{
_pallete.top -= kPaletteHeight;
}
completion:^(BOOL isFinished) {
}];
} else {
[UIView animateWithDuration:0.3
animations:^{
_pallete.top += kPaletteHeight;
}
completion:^(BOOL isFinished) {
[_tempViewPaletteListener removeFromSuperview];
[_pallete removeFromSuperview];
}];
}
* _tempViewPaletteListener просто вид с использованием крана жест убрать палитру *
Проблема в том, что когда я сначала пытаюсь запустить код здесь, вид _palette будет просто отображаться сразу. Что я ожидал, он должен скользить вверх по представлению _palette.
Хотя он работает отлично после первой попытки
Update: «UIView анимация не анимировать сначала попробовать»
Измененное название вопрос из в «Тяжелая инициализация заставляет анимацию UIView не анимировать с первой попытки?»
Мой код выше работает отлично, это просто, что перед вызовом анимации я макет вида палитры и добавить в RSColorPicker
- (void)layoutPaletteView {
if(!_colorPicker && !_brightnessSlider) {
// Create Color Picker and Brightness Slider
}
if(!_pallete) {
// Style the Palette View and add color picker and brightness slider as subview
}
}
, и я заметил, что когда я не добавить палитру цветов и просто обычный вид для анимации , анимация работает отлично (конечно же, как это должно быть).
Проблема заключается в создании набора цветов, который слишком велик, что я думаю, является причиной того, почему он не может показать анимацию скольжения вверх
Вы уверены, что 'top' является правильно, когда вы добавляете _pallete? Вы, вероятно, создаете его с готовым прямоугольником, поэтому он просто ничего не оживляет, но когда вы измените его с анимацией выхода, он будет иметь правильное значение в следующий раз. – borrrden
Что такое свойство 'top'? Что происходит, когда вы его устанавливаете? Это не одно из свойств по умолчанию для UIView. –
ohh, я забыл, что это из категории (UIView + Additions). Ярлык для установки frame.origin.y – bluezald