我正在更新旧的应用程序,AdBannerView当没有广告时,它会从屏幕上滑落.当有广告时,它会在屏幕上滑动.基本的东西.
旧样式,我在动画块中设置框架.新风格,我有一个IBOutlet确定Y位置的约束,在这种情况下,它与superview底部的距离,并修改常量.
- (void)moveBannerOffScreen {
[UIView animateWithDuration:5 animations:^{
_addBannerDistanceFromBottomConstraint.constant = -32;
}];
bannerIsVisible = FALSE;
}
- (void)moveBannerOnScreen {
[UIView animateWithDuration:5 animations:^{
_addBannerDistanceFromBottomConstraint.constant = 0;
}];
bannerIsVisible = TRUE;
}
Run Code Online (Sandbox Code Playgroud)
横幅移动,完全符合预期,但没有动画.
更新:我重新观看了WWDC12视频" 掌握自动布局的最佳实践 ",其中包括动画.它讨论了如何使用更新约束AdBannerView.

我尝试使用以下代码,但得到完全相同的结果.
- (void)moveBannerOffScreen {
_addBannerDistanceFromBottomConstraint.constant = -32;
[UIView animateWithDuration:2 animations:^{
[self.view setNeedsLayout];
}];
bannerIsVisible = FALSE;
}
- (void)moveBannerOnScreen {
_addBannerDistanceFromBottomConstraint.constant = 0;
[UIView animateWithDuration:2 animations:^{
[self.view setNeedsLayout];
}];
bannerIsVisible = TRUE;
}
Run Code Online (Sandbox Code Playgroud)
在旁注中,我已经多次检查过,这是在主线程上执行的.
我有一个应用程序,在视图的下半部分有一个文本字段.这意味着当我输入文本字段时键盘覆盖文本字段.
如何在打字时向上移动视图以便我可以看到我正在键入的内容,然后在键盘消失时将其移回原来的位置?
我到处都看,但所有解决方案似乎都在Obj-C中,我还没有完全转换.
任何帮助将不胜感激.
我正在尝试为iPhone构建输入屏幕.屏幕有许多输入字段.其中大多数位于屏幕顶部,但两个字段位于底部.当用户尝试编辑屏幕底部的文本时,键盘将弹出并覆盖屏幕.我找到了一个简单的解决方案,可以在发生这种情况时将屏幕向上移动,但结果是屏幕总是向上移动,当用户尝试编辑屏幕时,屏幕顶部的字段会移动.
有没有办法让屏幕只在编辑底部字段时移动?
我使用了这里找到的代码:
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil)
}
func keyboardWillShow(sender: NSNotification) {
self.view.frame.origin.y -= 150
}
func keyboardWillHide(sender: NSNotification) {
self.view.frame.origin.y += 150
}
Run Code Online (Sandbox Code Playgroud) 当键盘出现时,我试图将屏幕向上移动.我成功完成了它但我需要知道如何仅在UITextView单击底部时滚动视图,而不是顶部,TextView因为键盘只是触及TextView下面.
应用是这样的:
class viewControllerCuatro: UIViewController, UITextViewDelegate {
@IBOutlet weak var textViewInteriorUno: UITextView!
@IBOutlet weak var textViewInteriorDos: UITextView!
override func viewDidLoad() {
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "Atrás", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
**NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: self.view.window)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: self.view.window)**
}
**func keyboardWillShow(sender: NSNotification) {**
// 1
let userInfo: [NSObject : AnyObject] = sender.userInfo!
// 2
let keyboardSize: CGSize = userInfo[UIKeyboardFrameBeginUserInfoKey]!.CGRectValue.size
let offset: CGSize = userInfo[UIKeyboardFrameEndUserInfoKey]!.CGRectValue.size
// 3
if keyboardSize.height …Run Code Online (Sandbox Code Playgroud) 我搜索过了
here:仅当键盘覆盖输入字段时才向上移动视图
在这里:https://developer.apple.com/library/content/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html
不幸的是,所有链接和我能找到的其他地方似乎并没有提供我正在寻找的良好清洁解决方案.它们要么用Obj-c代码过时,要么在使用Swift 4的Xcode 9的当前迭代中不能工作.
如何管理覆盖视图底部文本字段的键盘?我希望屏幕的视图只有当键盘覆盖文本字段视图时才会移动,而不使用滚动视图,能够对其进行动画处理以使其看起来很漂亮,而不是让它快速捕捉,最重要的是我不想使用外部图书馆.
来自Apple的CoreAnimation库非常棒,但是所有的示例代码都已过时,并且在目标c中已经过时了(我不相信Apple没有更新他们的文档).
如果有人能够指出我正确的方向更新和当前的代码或Apple的图书馆我错过了将专门解决这个问题,我将不胜感激.
所以我有一个带有文本字段的视图,但文本字段在底部。当我单击键盘时,它会弹出并覆盖文本字段,这是我的问题。我想知道当键盘出现时是否有可能将其余视图向上推?
ios ×6
swift ×5
keyboard ×3
animation ×1
autolayout ×1
ios6 ×1
iphone ×1
objective-c ×1
text ×1
textfield ×1
uikeyboard ×1
uikit ×1
view ×1
xcode ×1
xcode6 ×1