- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当调用键盘时,我使用 UIKeyboardWillShowNotification 上下 ScrollView 。这在大多数情况下都可以正常工作。但是,键盘有一个完成按钮,可以生成 UIAlert。没有 UIAlert 没有问题,但是如果调用 UIAlert , ScrollView 会发生一些奇怪的事情,它似乎会停止工作,因为它的大小变得更小。
这是我正在使用的代码:
func adjustInsetForKeyboardShow(show: Bool, notification: NSNotification) {
guard let value = notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue else { return }
let keyboardFrame = value.CGRectValue()
let adjustmentHeight = (CGRectGetHeight(keyboardFrame) + 70) * (show ? 1 : -1)
scrollView.contentInset.bottom += adjustmentHeight
//scrollView.scrollIndicatorInsets.bottom += adjustmentHeight
}
func keyboardWillShow(notification: NSNotification) {
if keyboardVisible == false {
adjustInsetForKeyboardShow(true, notification: notification)
keyboardVisible = true
}
}
func keyboardWillHide(notification: NSNotification) {
adjustInsetForKeyboardShow(false, notification: notification)
keyboardVisible = false
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
键盘上有一个按钮,其中包含以下代码:
func displayAlert(title:String, message:String, view:UIViewController){
let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: .Default, handler: { (action) -> Void in
}))
view.presentViewController(alert, animated: true, completion: nil)
}
结果是发出警报,然后当我按下“确定”按钮时, ScrollView 会中断。
有人可以帮忙吗?如果您需要更多代码,请告诉我
最佳答案
如果可能的话,我首先建议您使用表格 View 而不是 ScrollView 。其次,我不知道您是否测试过,但这些通知被多次调用,并且有时它们的行为与您的预期不同。我还没有尝试过,但我假设一旦您显示 UIAlert,这些方法之一就会被触发,然后您的内容大小就会变得疯狂。尝试设置断点,看看会发生什么。另外,尝试在返回时关闭键盘,然后调用 displayAlert()。另外,根据经验,当您离开屏幕时,删除观察者的 deinit 方法不会被调用,我不知道您是否有使用它的理由?最好使用 viewWillAppear、viewWillDissapear 方法。
关于ios - KeyboardWillShowNotification 和 UIAlert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37421860/
当 UIAlertController 与自定义 View 和 UITextField 一起出现时如何显示键盘?我的意思是我想在用户不触摸警报 View 中的 UITextField 的情况下自动显示
我目前正在使用本地通知来指示来自后台模式的来电。这很好用,但这是我看到的,当 Skype 在后台模式下接到电话时: 所以看起来可以从后台显示 UIAlert 并且任何人都可以回答我如何? 最佳答案 不
我在使 UIAlerts 工作时遇到了一些麻烦。我看过几个似乎解决了这个问题的问题,但我仍然有问题。警报 View 似乎没有显示。这是我的代码: var inputTextField:
我想在应用程序中显示一次 UIAlert,所以我尝试使用 Bool type showones。所以我在 viewdidLoad 中将其设置为 false,然后当我点击警报中的“完成”时,它会显示警报
我的代码曾经运行良好,但由于某种原因今天运行它,它执行了不同的任务。我基本上试图在用户的用户名、电子邮件或密码很短的情况下显示警报,否则将发出注册完成的警报,然后转到下一个 View 。但是现在,一旦
我正在使用 UITableView。如果没有网络连接,viewDidload 将会抛出异常。我的 viewDidLoad 函数是: @try { NSLog(@"Re
这里是新鲜绿色的新手。我刚开始编程并且已经被 UIAlert 困住了。我在这个网站上搜索过,但是有太多的帖子,正如我所说的,我对这一切有点陌生,所以我不知道真正要寻找什么。这就是我的。 -(void)
我已经在我的应用程序上成功设置了推送通知。当我向未运行应用程序的用户发送推送时,他们会收到他们应该收到的横幅样式。 但是,当用户打开应用程序时,推送通知不会显示为横幅,而是显示为 UIAlert。接收
我想在用户第一次打开我的应用程序时做一个 UIalert,告诉他们基本功能,但我不希望它在他们每次打开应用程序或重新加载主屏幕时显示。我在其他应用程序中看到过这种情况,但不知道最好的解决方法是什么。如
如果用户点击按钮并且标签文本为 0,我会尝试显示 UIAlert。我希望按钮在单击按钮后将标签文本更改为 0。当我尝试这样做时,UIAlert 在我不想要的时候出现了。这是我的按钮代码: @IBAct
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"open app" message:@" backgr..." delega
我遇到了一件奇怪的事情。我有我的 View ,然后我有一个 ScrollView ,我用一个按钮在其中设置动画。一切正常,但 native 对话框开始出现奇怪的动画? (参见 GIF 示例)当我注释掉
Facebook Messenger 应用程序在用户与推送通知警报消息交互后自动关闭 UIViewController。我想知道他们如何检测到用户单击了警报 View 中的其中一项操作。 我尝试基于推
我遇到了一个问题,所有 UIAlertView我的应用程序中的 s 需要一些时间才能显示出来。显示屏会立即变暗,但实际警报需要 5 秒才能显示。 我正在像这样创建它们: UIAlertView *al
我有一个测试连接操作逻辑。它将实时或不实时测试服务器。当逻辑完成测试并尝试在闭包线程内显示 UIAlertController 时会发生错误,这会使系统崩溃。 @IBAction func TestN
当调用键盘时,我使用 UIKeyboardWillShowNotification 上下 ScrollView 。这在大多数情况下都可以正常工作。但是,键盘有一个完成按钮,可以生成 UIAlert。没
我的 Xcode 非常糟糕,所以不要评判我。当用户扫描无效的二维码时,我试图暂停 captureSession,这将触发警报消息。用户关闭消息后,captureSession 将恢复。非常感谢所提供的
有没有办法删除 UIAlert 中操作之间的分隔符(actionSheet 样式)? 最佳答案 使用系统提供的UIAlertView无法做到这一点。 但是,看看 this Swift-written
我在呈现警报时遇到问题。我正在使用 UIAlertController。当用户按下提交按钮时,在应用程序执行某些操作时,需要立即显示“请稍候..”的警报。操作完成后,警报将消失。尽管应该在我开始执行操
这是一个由两部分组成的问题。 我已经创建了用户在首次启动该应用程序时必须同意的用户协议(protocol)(这是一个包含一些信息和同意/不同意按钮的警告) 我在 myAppDelegate.m 和方法
我是一名优秀的程序员,十分优秀!