Tezda kengaytiriladigan matn maydoni/yorlig'i qanday yaratiladi?

I need to figure out how to program something like this: enter image description here

Matn kattalashtirilgandan so'ng, foydalanuvchi pastga tugmani bosgan holda va bosishdan keyin qisqa versiyaga o'tishi mumkin. Men o'qigan kutubxonalar bormi? Men dasturlashning boshlang'ichuvchisiman va faqat bu vazifaga qanday murojaat qilish kerakligi, qanday yo'l-yo'riq olishlari va hokazo haqida maslahatga muhtojman.

3
Ushbu javobni tekshirib, siz qanday yondashish kerakligini bilib olishingiz mumkin. Ulanish
qo'shib qo'ydi muallif sudheer, manba

6 javoblar

Barcha qilishingiz kerak bo'lgan dastlab UILabel kodini o'rnatish uchun numberOfLines ni tanlash uchun 7 va qatorni uzatish rejimi .byTruncatingTail bo'lishi kerak.

Keyin tugmani bosish oddiygina numberOfLines ni 0 ga va satr holiga o'tish rejimini .byWordWrapping bo'lishi uchun o'zgartiring. So'ngra matnni yashirishni xohlasangiz, tugmasini bosing va UILabel ni boshlang'ich qiymatiga o'rnating.

7
qo'shib qo'ydi

Barcha qilishingiz kerak bo'lgan dastlab UILabel kodini o'rnatish uchun numberOfLines ni tanlash uchun 7 va qatorni uzatish rejimi .byTruncatingTail bo'lishi kerak.

Keyin tugmani bosish oddiygina numberOfLines ni 0 ga va satr holiga o'tish rejimini .byWordWrapping bo'lishi uchun o'zgartiring. So'ngra matnni yashirishni xohlasangiz, tugmasini bosing va UILabel ni boshlang'ich qiymatiga o'rnating.

7
qo'shib qo'ydi

Ushbu muammoni hal qilish uchun AutoLayout < o'qish /code>. Bu qanday amalga oshirish mumkinligi haqida kichik bir misol.

Bu kodlash qismidir. Bu sinf UITextView va tugma harakati balandligi uchun IBOutlet ni o'z ichiga oladi.

class ViewController: UIViewController {

    let defaultHeight = 128
    let expectedHeight = 600
    var state: Bool = false

    @IBOutlet weak var height: NSLayoutConstraint!

    @IBAction func showAction(_ sender: Any) {
        UIView.animate(withDuration: 0.3, animations: {
                self.state = !self.state
                self.height.constant = CGFloat(self.state ? self.expectedHeight: self.defaultHeight)
                self.view.layoutIfNeeded()
        })
    }
}

Bu hikoyadan.

enter image description here

3
qo'shib qo'ydi

Ushbu muammoni hal qilish uchun AutoLayout < o'qish /code>. Bu qanday amalga oshirish mumkinligi haqida kichik bir misol.

Bu kodlash qismidir. Bu sinf UITextView va tugma harakati balandligi uchun IBOutlet ni o'z ichiga oladi.

class ViewController: UIViewController {

    let defaultHeight = 128
    let expectedHeight = 600
    var state: Bool = false

    @IBOutlet weak var height: NSLayoutConstraint!

    @IBAction func showAction(_ sender: Any) {
        UIView.animate(withDuration: 0.3, animations: {
                self.state = !self.state
                self.height.constant = CGFloat(self.state ? self.expectedHeight: self.defaultHeight)
                self.view.layoutIfNeeded()
        })
    }
}

Bu hikoyadan.

enter image description here

3
qo'shib qo'ydi

Siz UILabel uchun balandlik cheklovini belgilashingiz mumkin, va tap tugmasi hodisasida cheklovni doimiy ravishda etiketinizning mazmuniga o'zgartiradi.

Uni jonlantira olgandan keyin

UIView.animate(duration)
1
qo'shib qo'ydi

Siz UILabel uchun balandlik cheklovini belgilashingiz mumkin, va tap tugmasi hodisasida cheklovni doimiy ravishda etiketinizning mazmuniga o'zgartiradi.

Uni jonlantira olgandan keyin

UIView.animate(duration)
1
qo'shib qo'ydi