在 iOS 中创建浮动操作按钮

Posted

技术标签:

【中文标题】在 iOS 中创建浮动操作按钮【英文标题】:Create Floating Action Button in iOS 【发布时间】:2017-03-22 03:37:11 【问题描述】:

我想创建一个浮动操作按钮。这个按钮就像 android 中谷歌邮件上的添加按钮,如果我们点击然后屏幕变暗并显示一些具有良好动画的子按钮。这是github中的示例

起初,我在 cocoacontrols 上进行了搜索,但一无所获,因此我决定创建自己的。 但我不知道如何做到这一点,所以我的问题是如何创建它?

任何帮助或指向一些有用链接的指针将不胜感激。谢谢!

【问题讨论】:

我不知道浮动操作按钮是什么。看着你的照片,我不知道你想要完成什么。 嗨,@ElTomato 这个按钮就像 android 中谷歌邮件上的添加按钮,如果我们点击它,屏幕就会变暗,并显示一些动画效果很好的子按钮。 您应该为每个按钮显示使用自定义单元格,并在按钮单击事件的操作上重新加载 tableview 使用弹出动画来显示透明的暗视图.. 【参考方案1】:

您可以通过在当前视图控制器上方显示CustomViewController 来实现它,使用下面的代码

self.viewControllerObj.modalPresentationStyle = UIModalPresentationOverCurrentContext;
[self presentViewController:self.viewControllerObj animated:YES completion:nil];

如果您想查看带有shade effect 的背景视图,您可以将Opacity 设置为您的Background color 的呈现viewcontroller

要为您的按钮添加动画效果,请在下面找到一些示例代码,

CGRect tempSize = button.frame;
tempSize.origin.y -= 50;
[UIView beginAnimations:nil context:NULL]; // animate the following:
button.frame = tempSize; // move to new location
[UIView setAnimationDuration:0.3];
[UIView commitAnimations];

【讨论】:

嘿,谢谢你,我用你所说的模态演示做了它,并使用了一点动画。【参考方案2】:

它不是一个“浮动按钮”,它是另一个带有黑色底色和 alpha 0.3 的视图。 您添加按钮并将视图添加到原始视图或您的窗口层,如下所示。

UIWindow *window            = [UIApplication sharedApplication].keyWindow;
_bgView                     = [[UIView alloc] initWithFrame:CGRectMake(0, 0, Main_Screen_Width, Main_Screen_Height)];
//add your buttons here on the _bgView
//create buttons
_bgView.backgroundColor     = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.3];
[window addSubview:_bgView];

应该达到你想要的效果

【讨论】:

或者我们可以在上面展示一个模态演示吗?【参考方案3】:

arunjos007 的 Swift 版本回答:

viewControllerObj.modalPresentationStyle = .overCurrentContext
present(viewControllerObj, animated: true)

【讨论】:

以上是关于在 iOS 中创建浮动操作按钮的主要内容,如果未能解决你的问题,请参考以下文章

浮动操作按钮 onClick 上的 viewPagerAdapter 片段 NullPointerException

带有背景色调的浮动操作按钮导致错误

Android:浮动按钮图标未居中

如何在 iOS 的 swift 中将浮动操作按钮放在 tableView 中?

如何在使用“inRange”过滤器类型的 ag-grid 中创建自定义浮动过滤器组件

如何在键盘打开时隐藏浮动按钮(Android/iOS)?