создание CGRect вне экрана

Можно ли создать UIImageView внутри CGRect вне экрана?

Затем я анимирую его на экране после того, как пользователь нажмет кнопку UIButton.

Я знаю эту функцию CGRectMake(x,y,height, width), но, видимо, x и y не могут иметь отрицательных значений.

Может кто-нибудь мне помочь?


person bf613    schedule 20.06.2013    source источник
comment
Отрицательные значения x и y допускаются и должны работать нормально. Чтобы получить более качественную помощь, пожалуйста, объясните: #1 что вы сделали (включая точный код), #2 что вы ожидали, #3 что произошло на самом деле.   -  person Kurt Revis    schedule 20.06.2013
comment
Любопытно - что заставило вас поверить, что значения x и y не могут быть отрицательными?   -  person rmaddy    schedule 20.06.2013
comment
К сожалению, я не принял во внимание ширину моего прямоугольника и просто никогда не устанавливал отрицательную координату x, которая была бы больше, спасибо за помощь. Как закрыть этот вопрос?   -  person bf613    schedule 20.06.2013


Ответы (1)


Да, это возможно. Есть несколько вещей, которые вы могли бы сделать. В зависимости от того, откуда вы хотите, чтобы он анимировался, установите x и y изображения как отрицательные или больше, чем <parentView>.bounds.size.width или высота и т. д. Затем вы можете использовать UIView для анимации изменений.

Таким образом, в viewDidAppear или любом другом методе, запускающем анимацию, вы можете использовать Из документов Apple:

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion

для обработки всех анимаций. Вот пример:

[UIView animateWithDuration:<timeInSecondsOfHowLongItShouldTake>
            animations:^
            {
                    imageView.frame = <CGRectFrameOfPlaceThatYouWantItToGo>
                    //you could also make it fade in with imageView.alpha = 1;
                    //assuming you started out with an alpha < 1
            }
            completion:^(BOOL finished)
            {
                    //do something after it finishes moving 
                    //the imageview into place
            }
];
person mrosales    schedule 20.06.2013