IOS Swift中是不是存在Android java getResource.getIdentfier?

Posted

技术标签:

【中文标题】IOS Swift中是不是存在Android java getResource.getIdentfier?【英文标题】:Is Android java getResource.getIdentfier exist in IOS Swift?IOS Swift中是否存在Android java getResource.getIdentfier? 【发布时间】:2017-02-21 06:00:37 【问题描述】:

我的应用程序有很多数据。所以有这么多的文本字段。因此,我想以同样的方式在 ios swift 中管理 textView。

    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】:

我假设您想分别识别相应的 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
    
 

您还可以为每个文本字段/文本视图分配出口,并使用出口进行检查。

@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 也可以这样做。

【讨论】:

【参考方案2】:

我相信您想分别识别每个UITextFieldUITextView 并相应地操纵它们。您可以通过以下方式进行:

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属性。

要在swift 中将不同的UITextView 作为subView 添加到self.view,您可以执行以下操作:

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 

   

【讨论】:

将 textView1.tag = 2 更改为 textView1.tag = 1【参考方案3】:

主要区别在于 iOS 使用基于数字的标签,而 android 使用文本键。你可以用两者来完成同样的事情。在 iOS 中,将所有标签存储在一个集合中并根据标签进行修改。用于设置标签的集合类型和语法细节取决于您编写视图的方式。

【讨论】:

【参考方案4】:

通过界面生成器或view.tag = myTag;设置标签后,您可以执行以下操作:

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

【讨论】:

以上是关于IOS Swift中是不是存在Android java getResource.getIdentfier?的主要内容,如果未能解决你的问题,请参考以下文章

swift中的任何功能是不是类似于Android中的R.java?

使用 Swift 测试 UIApplicationOpenSettingsURLString 是不是存在

在 Swift 或 Java android 项目中使用 Xamarin 库

iOS:在 Swift 中动态设置 UITableView 高度

iOS - Swift 蓝牙 - 未发现 Android 设备

Android中是不是存在暂停状态?