2010-08-12 5 views
0

У меня есть UISegmentedControl на одной из моих страниц. Я хочу, чтобы окно редактирования появлялось, когда сегмент щелкнул прямо под нажатым сегментом. Я бы хотел, чтобы это было анимировано (вставьте или что-то еще)Настройка UISegmentedControl

Возможно ли это? Какой был бы лучший способ сделать это?

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

ответ

1

Вы можете попробовать анимацию UIView. Во-первых, установите свой редакторский блок (UITextView, я думаю), в координату x 320 (поэтому он не появится). Во-вторыхи, когда пользователь ударил сегментированное управление просто перевести UITextView с помощью UIView анимации:

[UIView beginAnimation:nil context:nil]; 
[UIView setAnimationDuration: 1.0]; 
CGAffineTransform trans = CGAffineTransformMakeTranslation(-320, 0); 
self.view.transform = trans; 
[UIView commitAnimations]; 

Надеется, что это поможет;).

+0

Thnx ... Im нового для этой вещи (1 месяц опыта) иЕ понимают логику, но не знают, где делать анимацию, тем более, что это происходит внутри cellview – humblePilgrim

0

Хорошо, я постараюсь быть более точным, я думаю, вы используете интерфейс Builder? Таким образом, вы должны «ссылка» действие вам UISegmentedController, поэтому в классе написать этот метод:

-(IBAction) translateMyView 
{ 
    //If the first segment is selected do translation of the cellView 
    if(yourSegmentedController.selectedSegmentIndex == 0) 
    { 
    [UIView beginAnimation:nil context:nil]; 
    [UIView setAnimationDuration: 1.0]; 
    //This will translate the view to its position from its position -320 px 
    CGAffineTransform trans = CGAffineTransformMakeTranslation(-320, 0); 
    //Replace self.view with the view you want to translate. 
    self.view.transform = trans; 
    [UIView commitAnimations]; 
    } 
    else if(yourSegementedController.selectedSegmentIndex ==1) 
    { 
    //Do same thing that above but with another view 
    } 
} 

Так это действие, когда вы больше появляться выбора индекса в вашем segmentedController. Что вам нужно сделать, так это связать это действие с вашим UISegmentedController в Interface Builder.

Надеется, что это будет полезно ;-)

+0

Кажется, что тот, кто должен быть точным ive просмотр таблицы, каждая ячейка которого содержит сегментированный контроль с сегментом для каждого дня недели (всего 7 сегментов). Я хочу, чтобы текстовое поле появлялось ниже дня , когда его сегмент нажат, в который пользователь может ввести свои данные. Теперь, поскольку в таблице может быть любое количество ячеек (все с собственным UISegmentedControls), проблема становится сложной. Я готов сбрасывать анимационную часть, но TextView должен появиться ниже соответствующего дня. – humblePilgrim

+0

и в поле редактирования Я имею в виду TextField not TextView – humblePilgrim

+0

Thnx за усилия, которые вы вложили, чтобы помочь мне – humblePilgrim

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