Направление роста Swift textview

так что у меня есть текстовое представление внутри uiview. И мой вопрос в том, как заставить мой текстовый экран расти вверх, когда текстовое представление переходит на следующую строку, а также мой uiview.

var textheightcontraint : NSLayoutConstraint!
var viewheightconstraint : NSLayoutConstraint!


func setup4(){
    view.addSubview(colorview)
    colorview.topAnchor.constraint(equalTo: customtableview.bottomAnchor).isActive = true
    colorview.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    colorview.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    viewheightconstraint = colorview.heightAnchor.constraint(equalToConstant: 44)
    viewheightconstraint.isActive = true
    colorview.backgroundColor = UIColor.lightGray

    colorview.addSubview(customtextview2)
    customtextview2.backgroundColor = .white
    customtextview2.leftAnchor.constraint(equalTo: colorview.leftAnchor).isActive = true
    customtextview2.rightAnchor.constraint(equalTo: colorview.rightAnchor, constant: -20).isActive = true
    customtextview2.bottomAnchor.constraint(equalTo: colorview.bottomAnchor).isActive = true
    textheightcontraint = customtextview2.heightAnchor.constraint(equalToConstant: 39)
    textheightcontraint.isActive = true
    customtextview2.delegate = self

}
func setuptextview(){
    let fixedWidth = customtextview2.frame.size.width
    let newSize = customtextview2.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
    self.textheightcontraint.constant = newSize.height
    self.viewheightconstraint.constant = newSize.height
    self.view.layoutIfNeeded()
}
func textViewDidChange(_ textView: UITextView) {
    setuptextview()
}

Вы должны попытаться решить проблему и показать, что вы сделали до сих пор, чтобы решить проблему, если вы ожидаете, что сообщество SO поможет вам.

Rakesha Shastri 09.08.2018 20:51

ты знаешь как это делать?

W Allen 09.08.2018 21:05

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

Rakesha Shastri 09.08.2018 21:07

так ты знаешь, как это сделать?

W Allen 09.08.2018 21:07

то, над чем я сейчас работаю, - это использовать nslayoutconstraint для привязки высоты текстового представления

W Allen 09.08.2018 21:08

Да, тогда добавьте свой код к вопросу. Чтобы мы могли посмотреть, что вы сделали для этого.

Rakesha Shastri 09.08.2018 21:09

Как то так stackoverflow.com/questions/23485269/…

W Allen 09.08.2018 21:19

Это не связано с автоматическим раскладом. Проверьте мой ответ, он должен работать. У меня нет с собой macbook, иначе я бы сам проверил и сказал вам.

Rakesha Shastri 09.08.2018 21:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
110
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я понимаю ваш вопрос, вы хотите, чтобы текстовое представление (и представление, в котором оно содержится), сохраняло Нижний в той же позиции и расширялось вверх по мере ввода?

Для этого отключите прокрутку в текстовом представлении и настройте свои ограничения так, чтобы Нижний содержащего представления ограничивалось положением y:

//
//  ViewController.swift
//
//  Created by Don Mag on 8/9/18.
//

import UIKit

class ViewController: UIViewController {

    var theContainingView: UIView = {
        let v = UIView()
        v.translatesAutoresizingMaskIntoConstraints = false
        return v
    }()

    var theTextView: UITextView = {
        let v = UITextView()
        v.translatesAutoresizingMaskIntoConstraints = false
        return v
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = .yellow

        theContainingView.backgroundColor = .cyan

        theContainingView.addSubview(theTextView)

        view.addSubview(theContainingView)

        NSLayoutConstraint.activate([

            theTextView.topAnchor.constraint(equalTo: theContainingView.topAnchor, constant: 8.0),
            theTextView.bottomAnchor.constraint(equalTo: theContainingView.bottomAnchor, constant: -8.0),
            theTextView.leadingAnchor.constraint(equalTo: theContainingView.leadingAnchor, constant: 8.0),
            theTextView.trailingAnchor.constraint(equalTo: theContainingView.trailingAnchor, constant: -8.0),

            theContainingView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 40.0),
            theContainingView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -40.0),

            // Constrain the Bottom of the containing view. As the textView grows (or shrinks) with input,
            // the TOP of the view will move up or down
            theContainingView.bottomAnchor.constraint(equalTo: view.topAnchor, constant: 300.0),

            ])

        theTextView.isScrollEnabled = false
        theTextView.text = "This is the starting text."

    }

}

Результаты:

Другие вопросы по теме