以编程方式创建3个UITextView

时间:2017-05-23 18:01:16

标签: ios swift uitextview

我需要以编程方式创建3 UTextView,而无需使用for循环将每个{1}}设置为变量。

这是一个演示:

for i in 1...3 {
    var textView = UITextView()
    self.automaticallyAdjustsScrollViewInsets = false

    textView.center = self.view.center
    textView.textAlignment = NSTextAlignment.justified
    textView.textColor = UIColor.blue
    textView.backgroundColor = UIColor.lightGray

    self.view.addSubview(textView)
}

我怎样才能制作3个文本视图并能够控制它?

3 个答案:

答案 0 :(得分:1)

如果您需要从类中的其他方法访问生成的文本视图,或者甚至在发布的for循环之后,那么您需要保留对它们的引用。

创建一个数组来保存每个数组。然后您可以稍后使用该阵列进行访问。如果您只在创建它们的方法中需要它,那么将数组创建为另一个局部变量。如果您需要从类中的其他位置访问文本视图,请将该数组设置为您的类(视图控制器)。

var textViews = [UITextView]()

然后在你的循环中添加:

textViews.append(textView)

稍后,当您需要访问文本视图时,您可以遍历数组或根据需要访问单个元素。

答案 1 :(得分:0)

就像@rmaddy所说,你需要将这些textView存储在一个数组中。您还需要向textViews添加约束,以帮助他们使用autolayout

class MyViewController : UIViewController {
    var textViews = [UITextView]()

    func createUI() -> Void {
        for i in 1...3 {
            var textView = UITextView()
            self.automaticallyAdjustsScrollViewInsets = false

            textView.center = self.view.center
            textView.textAlignment = NSTextAlignment.justified
            textView.textColor = UIColor.blue
            textView.backgroundColor = UIColor.lightGray

            self.view.addSubview(textView)

            var vertContraint : NSLayoutConstraint
            if (i == 1) {
                vertContraint = NSLayoutConstraint(item: textView, attribute: .top, relatedBy: .equal, toItem: self.topLayoutGuide, attribute: .bottom, multiplier: 1.0, constant: 0.0)
            } else {
                vertContraint = NSLayoutConstraint(item: textView, attribute: .top, relatedBy: .equal, toItem: textViews[i - 1], attribute: .bottom, multiplier: 1.0, constant: 8.0)
            }
            //Do the same for your leading, trailing edges
            textView.addConstraints([/*vertContraint, leadingContr, trailingContr*/])
            textViews.append(textView)   
        }             
    }
}

答案 2 :(得分:0)

一个简单的解决方案是为for i in 1...5 { var textView = UITextView() self.automaticallyAdjustsScrollViewInsets = false textView.center = self.view.center textView.textAlignment = NSTextAlignment.justified textView.textColor = UIColor.blue textView.backgroundColor = UIColor.lightGray textView.tag = i self.view.addSubview(textView) } 中的每一个分配一个标签,然后分别通过指定的标签访问它。

以下是分配标签的演示:

UITextView()

您可以按标记访问任何指定的self.view.viewWithTag(1) self.view.viewWithTag(2) ...

if($_FILES['fileName']['size'] >  100000) {
   $error = 'Files size should be less than 100KB';
} else{
   move_uploaded_file($_FILES['fileName']['tmp_name'], targetDir);
   //targetDir is your directory where you want to save the file 
}

希望它有所帮助!