swift 中的 UIActionSheet 将取消按钮放在 iOS 7 中的顶部
UIActionSheet in swift puts Cancel button top in iOS 7
我正在将我的应用程序从 objective c 重写为 Swift,我注意到 UIActionSheet 在 Swift 版本中的行为与在 obj-c 版本中的不同。
Obj-c 版本
Swift版本
这仅在 iOS 7 上存在问题,在 iOS 8 上对于 Swift 和 Obj-c 版本都可以正常工作(意味着取消位于底部)
这是一段相关的代码:
var sheet = UIActionSheet(title: nil, delegate: self, cancelButtonTitle: "Cancel", destructiveButtonTitle: nil)
sheet.addButtonWithTitle("Camera")
sheet.addButtonWithTitle("Photo Library")
sheet.showInView(self.controller.view)
知道如何解决吗?
原来这又是一问即答的案例
我所要做的就是将“取消”按钮添加为另一个按钮,然后指定其索引:
var sheet = UIActionSheet(title: nil, delegate: self, cancelButtonTitle: nil, destructiveButtonTitle: nil)
sheet.addButtonWithTitle("Camera")
sheet.addButtonWithTitle("Photo Library")
sheet.addButtonWithTitle("Cancel")
sheet.cancelButtonIndex = 2
sheet.showInView(self.controller.view)
不确定他们是否改变了 UIActionSheet 在 Swift 中的工作方式,或者它是否是一个没有人关心修复的错误,因为它在 iOS 8 中已被弃用
这是我得到的
在 viewDidLoad()
或按钮操作上放置如下代码:
let actionSheet = UIActionSheet(title: nil, delegate: self, cancelButtonTitle: "Cancel", destructiveButtonTitle: "Done", otherButtonTitles: "Yes", "No")
actionSheet.showInView(self.view)
然后为他们的操作添加另一个函数,如下所示:
func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int)
{
switch buttonIndex{
case 0:
NSLog("Done");
break;
case 1:
NSLog("Cancel");
break;
case 2:
NSLog("Yes");
break;
case 3:
NSLog("No");
break;
default:
NSLog("Default");
break;
//Some code here..
}
}
我正在将我的应用程序从 objective c 重写为 Swift,我注意到 UIActionSheet 在 Swift 版本中的行为与在 obj-c 版本中的不同。
Obj-c 版本
Swift版本
这仅在 iOS 7 上存在问题,在 iOS 8 上对于 Swift 和 Obj-c 版本都可以正常工作(意味着取消位于底部)
这是一段相关的代码:
var sheet = UIActionSheet(title: nil, delegate: self, cancelButtonTitle: "Cancel", destructiveButtonTitle: nil)
sheet.addButtonWithTitle("Camera")
sheet.addButtonWithTitle("Photo Library")
sheet.showInView(self.controller.view)
知道如何解决吗?
原来这又是一问即答的案例
我所要做的就是将“取消”按钮添加为另一个按钮,然后指定其索引:
var sheet = UIActionSheet(title: nil, delegate: self, cancelButtonTitle: nil, destructiveButtonTitle: nil)
sheet.addButtonWithTitle("Camera")
sheet.addButtonWithTitle("Photo Library")
sheet.addButtonWithTitle("Cancel")
sheet.cancelButtonIndex = 2
sheet.showInView(self.controller.view)
不确定他们是否改变了 UIActionSheet 在 Swift 中的工作方式,或者它是否是一个没有人关心修复的错误,因为它在 iOS 8 中已被弃用
这是我得到的
在 viewDidLoad()
或按钮操作上放置如下代码:
let actionSheet = UIActionSheet(title: nil, delegate: self, cancelButtonTitle: "Cancel", destructiveButtonTitle: "Done", otherButtonTitles: "Yes", "No")
actionSheet.showInView(self.view)
然后为他们的操作添加另一个函数,如下所示:
func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int)
{
switch buttonIndex{
case 0:
NSLog("Done");
break;
case 1:
NSLog("Cancel");
break;
case 2:
NSLog("Yes");
break;
case 3:
NSLog("No");
break;
default:
NSLog("Default");
break;
//Some code here..
}
}