Ios 如何调整UITextView的大小?敏捷的
我的应用程序有问题,看看这张图片 现在我在textView上输入,我想要一种方法来调整textView的大小,或者将其移动到顶部,或者滚动到我要输入的最后一个位置。请帮助 我在这里看到了很多答案,但都不适用于我,这是我尝试其中一个答案时的代码Ios 如何调整UITextView的大小?敏捷的,ios,iphone,swift,Ios,Iphone,Swift,我的应用程序有问题,看看这张图片 现在我在textView上输入,我想要一种方法来调整textView的大小,或者将其移动到顶部,或者滚动到我要输入的最后一个位置。请帮助 我在这里看到了很多答案,但都不适用于我,这是我尝试其中一个答案时的代码 import UIKit class AddEditClassNoteViewController: UIViewController { @IBOutlet var keyboardHeightLayoutConstraint: NSLayo
import UIKit
class AddEditClassNoteViewController: UIViewController {
@IBOutlet var keyboardHeightLayoutConstraint: NSLayoutConstraint?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
@IBOutlet weak var noteTextBox: UITextView!
override func touchesBegan(touches: NSSet, withEvent event: UIEvent)
{
self.noteTextBox.resignFirstResponder()
}
func textFieldDidBeginEditing(textField: UITextField) {
animateViewMoving(true,moveValue: 100)
}
func textFieldDidEndEditing(textField: UITextField) {
animateViewMoving(false,moveValue: 100)
}
func animateViewMoving (up:Bool, moveValue :CGFloat){
var movementDuration:NSTimeInterval = 0.3
var movement:CGFloat = ( up ? -moveValue : moveValue)
UIView.beginAnimations( "animateView", context: nil)
UIView.setAnimationBeginsFromCurrentState(true)
UIView.setAnimationDuration(movementDuration )
self.view.frame = CGRectOffset(self.view.frame, 0, movement)
UIView.commitAnimations()
}
}
我使用的是Swift IOS 8,看起来你在问几个问题,我猜,所有这些问题都已经有了关于堆栈溢出的答案,但我会尽力给你举几个例子 首先,当你点击视图时,你所拥有的似乎隐藏了键盘。这可能部分地违背了你的目的 其次,若您试图滚动到noteTextBox的顶部,请尝试使用: noteTextBox.setContentOffsetCGPointMake0,0,动画:true[如果您想要滚动动画,请使用动画:true。您可能不需要,我不知道] 第三,查看此问题以调整UITextView的大小: 第四,检查这个问题,返回到您的UIView中记忆中的位置: 祝你好运,
Kyle对于任何需要用Swift语言回答的人,答案只需以下简单更改即可
import UIKit
class AddEditClassNoteViewController: UIViewController {
var keyboardShowing = false
@IBOutlet weak var noteTextBox: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardShow:", name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardHide:", name: UIKeyboardWillHideNotification, object: nil)
// Do any additional setup after loading the view.
}
override func shouldAutorotate() -> Bool {
return !self.keyboardShowing
}
// much simpler than in iOS 7; a lot of the touchy bugs are gone in iOS 8
// as long as you play your part (adjust content offset),
// iOS 8 will play its part (scroll cursor to visible)
// and we don't have to animate
func keyboardShow(n:NSNotification) {
self.keyboardShowing = true
let d = n.userInfo!
var r = (d[UIKeyboardFrameEndUserInfoKey] as NSValue).CGRectValue()
r = self.noteTextBox.convertRect(r, fromView:nil)
self.noteTextBox.contentInset.bottom = r.size.height
self.noteTextBox.scrollIndicatorInsets.bottom = r.size.height
}
func keyboardHide(n:NSNotification) {
self.keyboardShowing = false
self.noteTextBox.contentInset = UIEdgeInsetsZero
self.noteTextBox.scrollIndicatorInsets = UIEdgeInsetsZero
}
func doDone(sender:AnyObject) {
self.view.endEditing(false)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent)
{
self.noteTextBox.resignFirstResponder()
}
}
谢谢所有帮助我的人 你发布的代码没有任何意义。请更多地张贴或考虑使用第三方工具中的一个来完成同样的事情。我不知道我是如何做到这一点的,这就是为什么我要找出如何,如果你有任何第三方工具给我的话,感谢问题对于一个简单的答案来说实在太大了。考虑使用或建立一个第三方的解决方案,就像创造者提供的那样。谢谢你的回答,我不知道你是否觉得我的问题不好?我不知道为什么这里的人把我的问题投坏票。谢谢你,我会检查并尝试现在,如果你有任何cocopods库做这件事请放在这里我没有CocoaPods库为这一点,但代码应该是相当容易实现。我建议将您的问题分成更小的部分,例如如何滚动到UITextView的顶部?或者如何调整UITextView的大小?。这将使您更容易找到这些问题的答案。