2016-11-29 2 views
1

Мне было интересно, есть ли возможность отображать только 3 строки текста в текстовом виде, и когда вы нажимаете кнопку «Читать дальше», она будет расширяться до всего текста, который содержит более трех строк текста. Как это возможно в Swift и без какого-либо модуля или плагина?Как развернуть - свернуть UITextView в Swift?

Спасибо.

+0

Это может помочь вам - http://stackoverflow.com/questions/38244707/simplest-way-to-implement-a-read-more-button-to-expand-a-uitextview-in-ios -swi – Santosh

+0

Я не хочу использовать внешнюю библиотеку ... – Caspert

+0

@Caspert Вы можете посмотреть на библиотеку, хотя и выяснить, какой код вы бы хотели использовать ... –

ответ

2

Если вы хотите сделать это, не используя другую стороннюю библиотеку, самый простой способ - настроить кадр вашего UITextView. В моем примере кода у меня есть textView и кнопка в моей раскадровке. и onReadMore вызывается при нажатии кнопки. Я просто использую 40 как размер, когда он рухнул, и 200, когда он расширяется.

class ViewController: UIViewController 
{ 
    @IBOutlet weak var textView: UITextView! 

    override func viewDidLoad() 
    { 
    super.viewDidLoad() 

    let frame = textView.frame 
    let newRect = CGRectMake(frame.origin.x, frame.origin.y, 200, 40) 
    textView.frame = newRect 
    } 

    @IBAction func onReadMore(sender: AnyObject) 
    { 
    let frame = textView.frame 

    if frame.height < 180 
    { 
     textView.frame = CGRectMake(frame.origin.x, frame.origin.y, 200, 180) 
    } 
    else 
    { 
     textView.frame = CGRectMake(frame.origin.x, frame.origin.y, 200, 40) 
    } 
    } 
} 
+0

Что делать, если расширенная высота неизвестна/динамическая? – Sneha

+0

вы можете использовать высоту кадра в качестве базы, а затем добавить к ней фиксированное число. –

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