ios - iphone: как создать анимацию UItableviewcell при редактировании, как родное приложение будильника ios

Я сделал будильник, как будильник по умолчанию на iphone/ipod. Но я не знаю, как создать анимацию UItableviewcell при редактировании, как родное приложение часов iOS. Пожалуйста, помогите мне. Благодарность

Анимация такая.

введите здесь описание изображения


person Tran Ngoc Hung    schedule 06.06.2012    source источник


Ответы (2)


[tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];

http://developer.apple.com/library/ios/documentation/uikit/reference/UITableView_Class/Reference/Reference.html#//apple_ref/occ/instm/UITableView/reloadSections:withRowAnimation:

где UITableViewRowAnimation может быть одним из следующих:

typedef enum {
UITableViewRowAnimationFade,
UITableViewRowAnimationRight,
UITableViewRowAnimationLeft,
UITableViewRowAnimationTop,
UITableViewRowAnimationBottom,
UITableViewRowAnimationNone,
UITableViewRowAnimationMiddle,
UITableViewRowAnimationAutomatic = 100
} UITableViewRowAnimation;

http://developer.apple.com/library/ios/documentation/uikit/reference/UITableView_Class/Reference/Reference.html#//apple_ref/doc/c_ref/UITableViewRowAnimation

person Guntis Treulands    schedule 06.06.2012
comment
Спасибо за ваш комментарий. Я был протестирован, но анимация не похожа на ячейку в приложении будильника по умолчанию. - person Tran Ngoc Hung; 06.06.2012
comment
да. Я делаю . Пожалуйста, посмотрите мою фотографию i594.photobucket.com/albums/tt22/ хунгкнортон/ . Я имею в виду, что при использовании кнопки редактирования UIswitch исчезнет, ​​и появится галочка аксессуара. Это похоже на будильник по умолчанию на ios - person Tran Ngoc Hung; 06.06.2012
comment
да. Я должен сделать подобную анимацию с помощью пользовательских uitableviewcell и uiswitch. - person Tran Ngoc Hung; 06.06.2012
comment
Я думаю, что они просто меняют вид аксессуара tableviewcell из cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; для пользовательского представления аксессуаров с помощью uiswitch. Вы можете проверить это? - person Guntis Treulands; 06.06.2012
comment
но с помощью анимации для изменения. Это должно как-то оживить. Другая возможность заключается в том, что вы используете DisclosureIndicator в качестве пользовательского вспомогательного вида (вы получаете изображение и размещаете его самостоятельно), а затем при входе в режим редактирования вы перемещаете их оба и исчезаете один из них. - person Guntis Treulands; 06.06.2012

Я вижу, что происходит то, что элемент управления скрывается.

Оба класса UITableView и UITableViewCell имеют свойство, называемое:

editing

а также метод под названием:

- (void) setEditing : (BOOL) editing animated : (BOOL) animated;

Оба они могут использоваться для перевода UITableView/UITableViewCell в режим «редактирования». Свойство можно использовать для создания UITableView/UITableViewCell и установки его в режим «редактирования» перед добавлением в иерархию представлений.

Однако этот метод, хотя он также может использоваться для достижения того же самого программно, также может использоваться для переопределения/улучшения поведения «редактирования» UITableView/UITableViewCell. В этом случае он может использоваться UITableViewCell для уведомления собственным UITableView, частью которого является UITableViewCell, о том, что UITableView был установлен в режим «Редактирование»:

- (void) setEditing : (BOOL) editing animated : (BOOL) animated
{ // setEditing:animated: ()
    mySwitchView = [[self contentView] viewWithTag : 100];
    CGFloat alphaValue = editing ? 0.0f : 1.0f;

    [UIView animateWithDuration : 3.0f
                     animations : ^(void)
                                 {
                                     [mySlideView setAlpha : alphaValue];
                                 }
} // setEditing:animated: ()

Следовательно, если бы это был один из типов UTableViewCell, предоставляемых Apple. Чтобы какой-либо контроль над нами был частью UITableViewCell, его необходимо добавить в представление содержимого UITableViewCell в методе UITableView, предоставляемом UITableViewDataSource:

- (UITableViewCell*) tableView : (UITableView*) cellForRowAtIndexPath : (NSIndexPath*) indexPath
{ // tableView:cellForRowAtIndexPath: ()
    static cellIdentifier = @"cell-identifier";

    UISwitchView*    switchView = nil;
    UITableViewCell* cell       = [tableView dequeueReusableCellWithIdentifier : cellIdentifier];

    if (cell == nil)
    { // if ()
        switchView = [[UISwitchView     alloc] initWithFrame : CGRectZero];
        cell       = [[[UITableViewCell alloc] initWithStyle : UITableViewCellStyleDefault
                                             reuseIdentifier : cellIdentifier] autorelease];
        [switchView setTag : 100];
        [[cell contentView] addSubview : switchView];

        [switchView release];

        switchView = nil;
    } // if ()

    return (cell);
} // tableView:cellForRowAtIndexPath: ()

Я надеюсь, что это отвечает на ваш вопрос.

Ваше здоровье.

person J. T. Marsh    schedule 29.04.2013