为了方便我可以加载透明背景的新布局我试试这个:
ListaalertvIEwcontroller.vIEw.backgroundcolor = UIcolor.clearcolor() let purple = UIcolor.purplecolor() // 1.0 Alpha let semi = purple.colorWithAlphaComponent(0.5) ListaalertvIEwcontroller.vIEw.backgroundcolor = semi presentingVIEwController.modalPresentationStyle = UIModalPresentationStyle.CurrentContext self.presentVIEwController(ListaalertvIEwcontroller,animated: true,completion: nil)
在动画中它是透明的,但是当动画结束时它是不透明的……我在视图中关闭了不透明的选项……我做错了什么?
解决方法 代码在Swift 5和Xcode 10中测试过如何制作自己的自定义提醒
我想做类似的事情.首先,UIAlertVIEw不赞成使用UIAlertController.有关显示警报的标准方法,请参阅此答案:
> How would I create a UIAlertView in Swift?
UIAlertVIEw和UIAlertController都不能真正实现太多自定义.一种选择是使用一些第三方代码.但是,我发现通过显示另一个视图控制器modaly创建自己的警报并不困难.
这里的例子只是一个概念验证.您可以按照自己的方式设计警报.
故事板
你应该有两个视图控制器.您的第二个视图控制器将是您的警报.将类名设置为AlertVIEwContoller,并将Storyboard ID设置为警报. (这些都是我们在下面的代码中定义的名称,没有什么特别之处.如果需要,可以先添加代码.如果先添加代码,实际上可能会更容易.)
将根视图(在警报视图控制器中)的背景颜色设置为清除(或半透明黑色适用于警报).添加另一个UIVIEw并使用约束来居中.使用它作为你的警报背景,并把你想要的东西放在里面.在我的例子中,我添加了一个UIbutton.
码
VIEwController.swift
import UIKitclass VIEwController: UIVIEwController { @IBAction func showAlertbuttonTapped(_ sender: UIbutton) { let storyboard = UIStoryboard(name: "Main",bundle: nil) let myAlert = storyboard.instantiateVIEwController(withIDentifIEr: "alert") myAlert.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext myAlert.modalTransitionStyle = UIModalTransitionStyle.crossdissolve self.present(myAlert,completion: nil) }}
AlertVIEwController.swift
import UIKitclass AlertVIEwController: UIVIEwController { @IBAction func dismissbuttonTapped(_ sender: UIbutton) { self.dismiss(animated: true,completion: nil) }}
不要忘记连接插座.
您可以将ontouchUp事件侦听器添加到后台视图,以在用户单击其外部时关闭该d出窗口.
而已.你应该能够做出任何你能想象到的警报.不需要第三方代码.
这是我做的另一个自定义警报.仍然很难看,但它显示了你可以做的更多事情.
其他选择
但有时候没有必要重新发明轮子.我对第三方项目SDCAlertView(麻省理工学院许可证)印象深刻.它是用Swift编写的,但您也可以将它与Objective-C项目一起使用.它提供广泛的可定制性.
总结以上是内存溢出为你收集整理的ios – 带有swift的自定义警报(UIAlertView)全部内容,希望文章能够帮你解决ios – 带有swift的自定义警报(UIAlertView)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)