2017-04-10 85 views
1

我想在可以像Snapchat一样滚动的标签上显示选定的联系人。在经历了很多关于stackoverflow的问题之后,我使用了Textview,因为它是可滚动的。Swift:水平滚动UITextView

@IBOutlet weak var selectedContactsDisplay: UITextView! 
selectedContactsDisplay.delegate = self 
selectedContactsDisplay.backgroundColor = UIColor.appColor()  
selectedContactsDisplay.textColor = UIColor.white 
selectedContactsDisplay.textContainer.maximumNumberOfLines = 1 
selectedContactsDisplay.textContainer.lineBreakMode = NSLineBreakMode.byTruncatingHead 

let stringOne = selectedContactName.joined(separator: ",") 
selectedContactsDisplay.text = stringOne 

func textViewDidBeginEditing(_ textView: UITextView) { 
    textView.resignFirstResponder() 
} 

但是,水平滚动仍然是不可能的。有人可以帮助我如何启用滚动。

+0

你不能在水平'UITextView'滚动! – Lion

+0

@Ananth集合视图和表格视图也是可滚动的。以及UIScrollView的子类。 –

+0

你可以做的是启用autoScroll。 http://stackoverflow.com/a/35018590/6203030 –

回答

0

您无法在UITextView中水平滚动。对于解决方案,您可以采用UIScrollView,它可以水平滚动,并可以添加标签或文本字段,并根据您的内容增加标签的宽度!应该设置适当的约束!

+0

非常感谢。我设法按照你的建议去做。 – Ananth

+0

不客气:) – Lion

+0

我有一个问题。现在,我如何滚动到标签文本的末尾。现在,即使我添加新数据,它也只是显示文本的开始部分。 – Ananth

0

不能在自己一个TextView滚动,你可以做的是使自动滚动:

@IBOutlet weak var selectedContactsDisplay: UITextView! 
selectedContactsDisplay.delegate = self 
selectedContactsDisplay.backgroundColor = UIColor.appColor()  
selectedContactsDisplay.textColor = UIColor.white 
selectedContactsDisplay.textContainer.maximumNumberOfLines = 1 
selectedContactsDisplay.textContainer.lineBreakMode = NSLineBreakMode.byTruncatingHead 


let stringOne = selectedContactName.joined(separator: ",") 
selectedContactsDisplay.text = stringOne 

func textViewDidBeginEditing(_ textView: UITextView) { 
    textView.resignFirstResponder() 
let range = NSMakeRange(selectedContactsDisplay.text.characters.count - 1, 0) 
selectedContactsDisplay.scrollRangeToVisible(range) 
}