2011-08-18 4 views
1

Так что я планирую сделать другой способ отображения истории в своем приложении для iPad, и я думаю, что пользователь мог бы поднять представление истории снизу, должен ли я просто разместить UIView там и добавить для него распознаватель жестов? Есть ли «правильный» способ сделать это? Я хочу, чтобы пользователь действительно мог перетащить представление снизу. Если вы не понимаете, спросите прочь, и я уточню.Представляя представление, вытягивая из верхней части окна

ответ

2

У вас есть правильная идея. Вы должны использовать UIPanGestureRecognizer для обновления вида frame. Имейте в виду, что вам нужно будет что-то для пользователя, чтобы «тянуть» на видимое все время - я не думаю, что вы сможете полностью скрыть представление от экрана.

Что-то, как это будет идти в реализации объекта, который вы выбираете для обработки событий от вашего жеста распознавателя (этот пример предполагает, что ваш вид контроллер):

- (void)handleDrag:(UIPanGestureRecognizer *)gesture { 
    if (gesture.state == UIGestureRecognizerStateChanged || 
     gesture.state == UIGestureRecognizerStateEnded) { 
     CGPoint translation = [gesture translationInView:self.view]; 
     CGRect newFrame = historyView.frame; 
     newFrame.origin.x = newFrame.origin.x + translation.x; 
     newFrame.origin.y = newFrame.origin.y + translation.y; 
     historyView.frame = newFrame; 

     // you need to reset this to zero each time 
     // or the effect stacks and that's not what you want 
     [gesture setTranslation:CGPointZero inView:self.view]; 
    } 
} 
+0

Спасибо! Кажется, я понял это сейчас. –

Смежные вопросы