添加新按钮并替换现有按钮并以流畅的动画消失

Posted

技术标签:

【中文标题】添加新按钮并替换现有按钮并以流畅的动画消失【英文标题】:add new button and replaces existing button and disappear with sleek animation 【发布时间】:2012-04-21 09:16:26 【问题描述】:

我想在屏幕底部添加总共 5 个按钮,但在第一次加载笔尖时只有四个可见。

如果用户按下第一个按钮,它将随着动画消失,第二个按钮将出现在 first 的位置。现在屏幕上终于多了一个按钮(按钮 5 )。

为了更清楚,我正在添加图片。

屏幕 1. 第一次加载 nib 时。

屏幕 2。按下按钮 1 时。

屏幕 3。按下按钮 2 时。

【问题讨论】:

【参考方案1】:

因为您尚未发布任何您尝试过的代码。

所以我可以向你建议一些想法。

如果您想在按下按钮时消失,而不是将其从视图中移除,您可以将其保留在那里但只会使其不可见,可以通过设置“视图的视觉外观”的属性(查找 UIView 类参考) 例如。 alpha 值,隐藏属性。

一旦你不可见它,然后在延迟(例如 1/2 秒)后使其可见。 一旦按钮可见,然后更改标签文本。

如果是你,你需要设置所有四个按钮的 UILabel 文本;通过将 label-text int 值增加 1。

【讨论】:

【参考方案2】:

这样的事情怎么样?它并不完美,因此您必须使用它,但它应该可以让您朝着正确的方向开始......

在你的 .h

IBOutlet UIButton *firstButton, *secondButton, *thirdButton, *fourthButton
NSArray *buttonsArray;

在您的 .m 中

-(void)viewDidLoad
    // VDL stuff
    buttonsArray = [NSArray arrayWithObjects:@"One", @"Two", @"Three", @"Four", @"Five", @"Six", nil];
    [firstButton setTitle:[buttonsArray objectAtIndex:0]];
    [firstButton setTag:0];
    // initial setup of the other three buttons works the same way


-(IBAction)updateButtons:(id)sender
    UIButton *btn = (UIButton*)sender;
    int index = btn.tag;
    for(int i = 0; i <4; i++)
        if([buttonsArray count] > index+i)
            switch(i)
                case 0:;
                    [firstButton setTitle:[buttonsArray objectAtIndex:i+index]];
                    [firstButton setTag:i+index];
                    break;
                case 1:; //secondButton
                    break;
                case 2:; //thirdButton
                    break;
                case 3:; //fourthButton
                    break;
            
        else
            break;
        
    

然后您需要做的就是将屏幕上的四个按钮连接到操作,否则您将需要一些逻辑(与上面的开关盒几乎相同)来隐藏这些按钮如果这是您想要做的,则在数组的末尾。

【讨论】:

以上是关于添加新按钮并替换现有按钮并以流畅的动画消失的主要内容,如果未能解决你的问题,请参考以下文章

XCode:以编程方式添加具有特定名称和动画的多个按钮

点击按钮出现水波纹动画

在 iTunes Connect 中添加新的应用内购买时保存按钮消失

在 App.xaml 中添加按钮并以编程方式将其添加到其他 xaml 页面 Windows 运行时应用

SwiftUI 多张纸:关闭动画损坏

如何使我的滚动到顶部按钮动画流畅