我有两个问题,一个长长的行动表,包括20个选项(大于屏幕高度):
问题1。如何在滚动时禁用垂直反弹?
问题2。滚动到底部时如何显示行分隔符?
问题2缺少行分隔符:
我正在使用Xcode6.4和iOS8.4模拟器。我的iPad在iOS 90.2上运行同样的代码,这两个问题也存在。
我使用UIAlertControllerStyle.ActionSheet
创建了一个操作表。我使用addAction
在操作表中添加了20个选项。
我的ViewController.swift如下:
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame: CGRectMake(50, 60, 200, 20))
button.setTitle("Press", forState: UIControlState.Normal)
button.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
button.addTarget(self, action: "btnPressed:", forControlEvents: UIControlEvents.TouchUpInside)
view.addSubview(button)
}
func btnPressed(sender: UIButton) {
let controller = UIAlertController(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)
for item in 1...20 {
controller.addAction(UIAlertAction(title: "Option \(item)", style: UIAlertActionStyle.Default, handler: { action in
}))
}
controller.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil))
presentViewController(controller, animated: true, completion: nil)
}
对于问题1:
是否有任何可以设置为UITableView中的bounces属性:
tableView.bounces = false
以防止长动作工作表在滚动时垂直反弹?对于问题2:
这与“UIActionSheet is not showing separator on the last item on iOS 7 GM”不同,后者使用已弃用的
UIActionSheet
而不是带有UIAlertController
的UIAlertControllerStyle.ActionSheet
。将“取消”选项添加到操作表似乎不是一个解决方案。如果我将标题或消息添加到操作表或从中删除“取消”选项,则底线分隔符仍将丢失。
有可能显示这些丢失的行吗?
最佳答案
如果要禁用视图(及其所有子视图)中的滚动,则此代码应该可以正常工作。
- (void)disableBouncingInView:(UIView *)view {
for (UIView *subview in view.subviews) {
if ([subview respondsToSelector:@selector(setBounces:)]) {
UIScrollView *scrollView = (UIScrollView *)subview;
[scrollView setBounces:NO];
}
[self disableBouncingInView];
}
}
这样称呼:
[self disableBouncingInView:myAlertController.view];
编辑:
我刚刚看到这个问题被标记为
swift
,所以swift中有同样的想法:func disableBouncingInView(view : UIView) {
for subview in view.subviews as [UIView] {
if let scrollView = subview as? UIScrollView {
scrollView.bounces = false
}
disableBouncingInView(subview)
}
}
像这样叫:
disableBouncingInView(myAlertController.view)
关于ios - iOS:大型UIAlertController ActionSheet在滚动时会弹起,并且不显示行分隔符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33282759/