2015-08-20 3 views
0

Я только начал изучать Swift, и я хочу сделать простое приложение для чата.
Я начал с просмотра чата, и для начала, чтобы использовать меня в этом языке, я хочу поговорить с самим собой.

Например, если я пишу сообщение и нажмите send button, чтобы отобразить его на оставил сторону экрана, и если я напишу еще одно сообщение и нажмите send button, чтобы отобразить его на правой стороне экран и т. д. ...

До сих пор я просто могу взять текст из своего input и поместить его в label (и я сделал свой кадр и клавиатуру отзывчивым).

Что я не знаю, как это сделать?? :
Как добавить несколько ярлыков в виде в swift, нажав кнопку?

  • Я хочу, чтобы после того, как я нажимаю на кнопку, чтобы сделать еще один label и отобразить его после последнего, в другой части экрана ... (сл: Я хочу, чтобы создать этикетку для каждого сообщения я посылаю)

Вот мой код до сих пор, я искал в Интернете, но до сих пор я не мог найти что-то полезно ... Я буду признателен любой вид наконечника ...

Спасибо !

    //my label 
        @IBOutlet weak var label: UILabel! 
        //my text field 
        @IBOutlet weak var textF: UITextField! 


        //we move the frame up and down with 250 when the keyboard appears 
        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); 
        } 

        //show keyboard 
        func keyboardWillShow(sender: NSNotification) { 
         self.view.frame.origin.y -= 250 
        } 


        //things TODO when the user is pressing the button 
        @IBAction func buttonPressed(sender: AnyObject) { 

         //create a variable(input) to store my text from the TextField 
         var input = textF.text 
         //put that text in the label 
         label.text = input 

         //empty text field 
         textF.text = " " 

         //create a new label for a new message 
         var label2 = UILabel(frame: CGRectMake(20, 20, 200, 21)) 

         // set the new label equal with the first to put the new message in it 
         //label2 = label 

         label2.center = CGPointMake(160, 284) 
         label2.textAlignment = NSTextAlignment.Center 
         label2.text = "I'am a test label" 



         //add it to the view 
         self.view.addSubview(label2) 


         //hide the keyboard 
         // self.textF.resignFirstResponder() 
        } 

        //hide keyboard if you tap the screen 
        override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
         self.view.endEditing(true) 
        } 

        //hide keyboard and get down the view 
        func keyboardWillHide(sender: NSNotification) { 
         self.view.frame.origin.y += 250 
        } 
+1

Используйте Tableview и использовать 2 пользовательские tableViewCell один с leftLabel другой с rightLabel. когда u нажмите на кнопку u, добавьте ячейку, которую хотите, и перезагрузите ячейку или таблицу. u нужно установить высоту ячейки динамически на основе ввода текста –

ответ

1

* Попробуйте приведенный ниже код *

@IBOutlet weak var label: UILabel! 
//my text field 
@IBOutlet weak var textF: UITextField! 
var label2 : UILabel = UILabel(frame: CGRectMake(20, 20, 200, 21)) 
var isSendMessage: Bool = true { 
    didSet { 
     if isSendMessage { 
      var input = textF.text 
      label.text = input 
      textF.text = " " 

     } else { 
      var input = textF.text 
      label2.text = input 
      textF.text = " " 

     } 
    } 
} 


//we move the frame up and down with 250 when the keyboard appears 
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); 
    label2.center = CGPointMake(160, 284) 
    label2.textAlignment = NSTextAlignment.Center 
    self.view.addSubview(label2) 
} 

//show keyboard 
func keyboardWillShow(sender: NSNotification) { 
    self.view.frame.origin.y -= 250 
} 


//things TODO when the user is pressing the button 
@IBAction func buttonPressed(sender: AnyObject) { 

    isSendMessage = !isSendMessage 

    self.textF.resignFirstResponder() 
} 

//hide keyboard if you tap the screen 
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
    self.view.endEditing(true) 
} 

//hide keyboard and get down the view 
func keyboardWillHide(sender: NSNotification) { 
    self.view.frame.origin.y += 250 
} 

} 
+0

Спасибо! Это немного помогло! Я продвинулся на один шаг вперед ... Я не знал, что нужно «сделать». – flori

+0

его действие, как наблюдатели за имуществом. когда вы когда-либо устанавливаете эту переменную, этот вызов hasSet –

Смежные вопросы