Изменить высоту и ширину фрейма UIView из пользовательского ввода из поля UIText - PullRequest
0 голосов
/ 18 мая 2018

Я могу изменить высоту и ширину фрейма UIView при нажатии кнопки, жестко задав значение высоты и ширины, но не могу изменить его, когда получаю ввод от пользователя в поле UItext в формате CGFloat.

`

 import UIKit

  class SetBorderSizeViewController: UIViewController{

@IBOutlet weak var WidthText: UITextField!
@IBOutlet weak var Height: UITextField!
@IBOutlet weak var View_border: UIView!

override func viewDidLoad() {
    super.viewDidLoad()
    View_border.isHidden = true
}


   //Change UIView Height and width frame  on  "ChangeSizeButton" Button Press.....

@IBAction func ChangeSizeButton(_ sender: Any) {
     View_border.isHidden = false
    View_border.layer.borderWidth = 5
 /// Here i want to get user input from text field...
    View_border.frame.size.height = 20
    View_border.frame.size.width = 80
   }

   }

`

Кто-нибудь здесь, кто может обновить мой код в соответствии с моими требованиями, пожалуйста ???.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Этот код также работает:

class ViewController: UIViewController {

    // MARK: IBOutlets

    @IBOutlet private weak var resizableView: UIView!
    @IBOutlet private weak var widthTextField: UITextField!
    @IBOutlet private weak var heightTextField: UITextField!

    // MARK: IBActions

    @IBAction private func didResizeButtonTapped(_ sender: UIButton) {
        let (newWidth, newHeight) = convertValues()
        resizableView.frame.size.width = newWidth
        resizableView.frame.size.height = newHeight
    }

}

// MARK: Private Methods

private extension ViewController {

    func convertValues() -> (width: CGFloat, height: CGFloat) {
        let width = Float(widthTextField.text ?? "0")
        let height = Float(heightTextField.text ?? "0")
        return (CGFloat(width ?? 0.0), CGFloat(height ?? 0.0))
    }

}

, но в моем случае я использую ограничения для своего "resizableView", поэтому мое представление каждый раз аннулируется.В этом случае вы можете создать ссылку на ограничения ширины и высоты и установить для них новые значения, такие как:

widthConstraint.constant = <your_value>
0 голосов
/ 18 мая 2018

Попробуйте это:

@IBAction func ChangeSizeButton(_ sender: Any) {
         View_border.isHidden = false
        View_border.layer.borderWidth = 5
     /// Here i want to get user input from text field...
        View_border.frame.size.height = CGFloat(Float(WidthText.text!)!)
        View_border.frame.size.width = CGFloat(Float(Height.text!)!)
        self.View_border.layoutIfNeeded()
       }
...