2016-06-26 19 views
0

Ich versuche, eine große Palette von bearbeitbaren Text zu erstellen, aber es scheint eine Option zu geben: mit einem kleinen UITextField.Mehrzeiliges bearbeitbares Stück Text: bearbeitbares UILabel?

Ich weiß, dass UILabels groß und breit sein können, aber ich weiß nicht, wie man ein bearbeitbares UILabel macht.

Ich experimentierte mit UILabel Eigenschaften und der .layer Methode, aber nichts scheint wirklich zu funktionieren. Hat jemand eine Empfehlung, was ich tun soll?

Zusammenfassend suche ich nach einem mehrzeiligen editierbaren Stück Text.

Antwort

2

UITextView für den Sieg !!

UITextViews erlauben die Mehrfachlinienbearbeitung von Texten und wenn Sie das UITextViewDelegate verwenden, kann es Methoden bereitstellen, die bestimmte Dinge erlauben, wenn der TextView angeklickt wird, etc ...!

Mit einem UITextView können Sie eine bestimmte Anzahl von Zeilen bereitstellen (wenn Sie nur 3 möchten, können Sie dies angeben) und gegebenenfalls Hyperlinks bereitstellen.

Hier ein Beispiel ist, ich habe (ein wenig verändert) für ya ein Beispiel zu zeigen ...

let textBox:UITextView = UITextView(frame: CGRect(x: firstBox.frame.width*0, y: firstBox.frame.height*0.375, width: firstBox.frame.width*1, height: firstBox.frame.height*0.5)) 
     textBox.backgroundColor = UIColor.clearColor() 

     let websiteName = "http://stackoverflow.com/posts/38035564" 
     textBox.text = "SO is an awesome coding site! Please visit\n\(websiteName)" 

     //No need to set number of lines, it will auto set to as many as needed! 
     textBox.editable = false 
     textBox.selectable = true 

     //Register the hyperlink 
     textBox.dataDetectorTypes = UIDataDetectorTypes.All 
     textBox.textColor = UIColor.grayColor() 

     //Change only the hyperlink part 
     let textRange = NSMakeRange(textBox.text.characters.count-websiteName.characters.count, websiteName.characters.count) 
     let style = NSMutableParagraphStyle() 
     style.alignment = NSTextAlignment.Center 

     let attributedText = NSMutableAttributedString(string: textBox.text, attributes: [NSFontAttributeName:UIFont(
      name: (textBox.font?.fontName)!, 
      size:13/15*fontSize)!, 
      NSParagraphStyleAttributeName: style]) 
     attributedText.addAttribute(NSUnderlineStyleAttributeName , value:NSUnderlineStyle.StyleSingle.rawValue, range: textRange) 
     textBox.attributedText = attributedText 
     firstBox.addSubview(textBox) 
+0

Sie sind das Beste! Zwei goldene Sterne! Einer für die richtige Antwort, der zweite für Ihre Begeisterung. Prost! –

+0

Danke, mein Herr! Fühlen Sie sich frei, weitere Fragen/Kommentare hier zu posten und ich werde Ihnen weiterhelfen! Viel Glück bei deinen Coding Adventures! – impression7vx

Verwandte Themen