2017-02-21 2 views
0

Мое приложение имеет так много данных. Так много текстового поля. Поэтому я хочу управлять textView в iOS swift таким же образом.Является ли Android java getResource.getIdentfier в IOS Swift?

area1Layer = new TextView[25]; 
     for(int k = 0; k < layer1; k++){// 층수 SET 
      area1Layer[k] = (TextView)findViewById(getResources().getIdentifier("layer"+(k+1),"id","kr.soen.areacard")); 
      area1Layer[k].setText(Integer.toString(k + 1) + "0" +ho1); 
     } 
+1

Вы можете управлять тегами. – zapdroid

ответ

0

Я считаю, что вы хотите, чтобы идентифицировать каждую UITextField или UITextView отдельно и, соответственно, управлять ими. Вы можете сделать это следующим образом:

let textView1: UITextView = UITextView() 
textView1.tag = 1 

let textView2: UITextView = UITextView() 
textView2.tag = 2 

self.view.addSubview(textView1) 
self.view.addSubview(textView2) 

Для идентификации между различными объектами зрения, вы можете использовать .tag недвижимость в iOS, установив .tag указанным выше способом.

Чтобы получить разные UITextView добавлены к self.view как subView в swift, вы можете сделать следующее:

if let textViewObject: AnyObject = self.view.viewWithTag(2) { 
    // first check is to identify if there is a given view with the tag 
    if let textView: UITextView = textViewObject as? UITextView { 

    } 
} 
+0

Изменить текстView1.tag = 2 to textView1.tag = 1 – Sneha

+0

Да, исправлено в редактировании. – KrishnaCA

-1

После установки метки через интерфейс строителя или view.tag = myTag; вы можете сделать что-то вроде:

for (int x=0; x<strings.count; x++){ 
    UITextView *view = [self.view viewWithTag:x]; 
    view.text = strings[x]; 
} 
+0

объяснение для downvote? – arsenius

1

Я предполагаю, что вы хотите идентифицировать соответствующий UITextField/UITextView отдельно. Это можно сделать, назначив разные теги соответствующим текстовым полям/текстовым полям.

let textField1: UITextField = UITextField() 
textField1.tag = 1 
let textField2: UITextField = UITextField() 
textField2.tag = 2 

и в методе UITextFieldDelegate,

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { 
    if textField.tag == 1 { 
     //Type your code here 
    } 
    if textField.tag == 2 { 
     //Type your code here 
    } 
} 

Также можно назначить точки для каждого/текстового поля TextView и использовать выходы для проверки.

@IBOutlet weak var textField1: UITextField! 
@IBOutlet weak var textField2: UITextField! 

и в методе UITextFieldDelegate,

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { 
    if textField == textField1 { 
     //Type your code here 
    } 
    if textField == textField2 { 
     //Type your code here 
    } 
} 

То же самое может быть сделано в случае UITextView, а также.

0

Главное отличие заключается в том, что iOS использует числовой тег, в то время как Android использует текстовый ключ. Вы можете сделать то же самое с обоими. В iOS хранятся все ваши метки в коллекции и изменяются для каждого тега. Тип коллекции и особенности синтаксиса для установки тега зависят от того, как вы нарушаете свои взгляды.

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