2010-09-07 2 views
5

Привет, у меня есть представление, которое имеет кнопку, которая при нажатии должна иметь формат UIDatePicker. У меня есть сборщик, который появляется правильно, но поскольку он сам по себе UIView, он полный рост и выглядит забавным. Все, что я хочу, это получить очень быстрый ввод данных от пользователя, больше как UIActionSheet, чем UIView.Представление UIDatePicker modally

Как я могу сделать UIPicker слайд-модами только на полпути и иметь некоторые действия на панели инструментов, как и т. Д.?

Благодаря

ответ

4

Вы можете поместить его на другой UIView, который имеет прозрачный фон, или более просто, не используйте presentModalViewController, но написать собственную процедуру, чтобы показать его в текущем виде.

// Untested code: 
// put this in your current UIViewController (the one where you were going to call presentModalViewController:) 

- (void)showPicker:(UIPickerView *) picker{ 
     CGRect startFrame = picker.frame; 
     CGRect endFrame = picker.frame; 
     // Set the start position to below the bottom of the visible frame: 
     startFrame.origin.y = self.view.frame.size.height; 
     // Set the end position to slid up by the height of the view, so it will just fit: 
     endFrame.origin.y = startFrame.origin.y - endFrame.size.height;  
     picker.frame = startFrame; 

     [self.view addSubView:picker]; 
     [UIView beginAnimations] 
     picker.frame = endFrame; 
     [UIView commitAnimations]; 
} 

Вы бы, конечно, нужно добавить необходимый код, чтобы держать указатель на селекторе и отслеживать, когда нужно показать и избавиться от него.

+1

Отлично! То, что мне было нужно – Jerry

+0

Нет метода beginAnimations. И вы не можете использовать тип 'CGRect * '. – DanSkeel

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