ios - iphone:如何在编辑时创建动画UItableviewcell,就像本机ios闹钟应用程序一样

时间:2012-06-06 09:17:28

标签: iphone c object ipod-touch

我在iphone / ipod上制作了一个像闹钟一样的闹钟。但我不知道如何编辑动画UItableviewcell时编辑像本机ios时钟应用程序。请帮助我。感谢

像这样的动画。

enter image description here

2 个答案:

答案 0 :(得分:0)

[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

答案 1 :(得分:0)

我看到的是控件被隐藏了。

UITableView和UITableViewCell类都有一个名为:

的属性
editing

以及一个名为:

的方法
- (void) setEditing : (BOOL) editing animated : (BOOL) animated;

这两个都可用于将UITableView / UITableViewCell置于“编辑”模式。该属性可用于创建UITableView / UITableViewCell,并在添加到视图层次结构之前将其设置为“编辑”模式。

但是,该方法虽然也可用于以编程方式实现相同的操作,但也可用于覆盖/增强UITableView的/ UITableViewCell的“编辑”行为。在这种情况下,UITableViewCell可以使用UITableViewCell所属的UITableView来通知UITableView已被设置为“Editing”模式的事实:

- (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: ()

因此,如果这是Apple提供的UTableViewCell类型之一。为了让我们的任何控件成为UITableViewCell的一部分,需要将它添加到UITableViewCell的内容视图中,由UITableViewDataSource提供的UITableView方法:

- (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: ()

我希望这能回答你的问题。

干杯。