2015-02-11 34 views
-6

我有我的应用程序有问题,看看这个PIC如何调整UITextView的大小?斯威夫特

this pic

现在我打字TextView的,我想办法调整的TextView或将其移动到顶部或滚动到最后在那里我打字,请帮助

我看到了很多答案在这里,但都无法与我一起工作,这是代码,当我试图解答的一个

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() 
    } 






} 

林USI ng Swift IOS 8

+0

您发布的代码没有任何意义。请发布更多内容或考虑使用许多完成同样任务的第三方工具之一。 – InkGolem 2015-02-11 18:33:27

+0

我不知道我是如何做这件事的,这就是为什么我试图找出如何,如果你有任何第三方工具给我,谢谢 – 2015-02-11 18:34:49

+0

你的问题真的太大,一个简单的答案。考虑使用(或建立)像[Slack(在此下载)](https://github.com/slackhq/SlackTextViewController)创建者提供的第三方解决方案。 – InkGolem 2015-02-11 18:37:47

回答

0

看起来好像你在问几件事(所有这些,我猜,已经有堆栈溢出的答案),但我会尽我所能给你几个例子。

首先,到目前为止,您在点击视图时似乎隐藏了键盘。这可能会部分挫败你的目的。如果你想有一个滚动动画 noteTextBox.setContentOffset(CGPointMake(0, 0), animated: true)
[使用animted: true

其次,如果你试图滚动到你的noteTextBox的顶部,请尝试使用。你可能不,我不知道]

三,检查出这个问题对于调整的UITextViewClick Here

第四,看看这个问题,返回到“记忆”的位置上你的UIView:Click Here

祝你好运,
凯尔

+0

谢谢你我会检查并尝试,如果你有任何cocopods库做这件事情请放在这里 – 2015-02-11 18:41:23

+0

我没有一个CocoaPods库,但是代码应该相当容易实现。我建议将你的问题分解成更小的块,比如“如何滚动到UITextView的顶部?”或“如何调整UITextView的大小?”。这样可以更容易地找到你有这些问题的答案。 – kbpontius 2015-02-11 18:45:15

+0

我现在要做,谢谢亲爱的 – 2015-02-11 18:48:14

0

对于任何一个需要雨燕的语言回答,答案是,因为只有下面这个简单的变化。

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() 




    } 







} 

感谢所有想要帮助我的人。