【问题标题】:How Can I orderly arrange items in Referencing Outlet Collection automatically?如何在 Reference Outlet Collection 中自动有序排列项目?
【发布时间】:2013-02-13 07:37:44
【问题描述】:

我在 Xib 中将 UITextfields 的引用插座集合排列为一个在另一个之下。当我打印引用插座集合时,我发现它是无序的。我需要自动排列文本字段,即文本 fileld 在 UI 中排在第一位,应该在 Outlet Collection Array 中排在第一位。有什么想法吗?

【问题讨论】:

    标签: iphone uitextfield iboutletcollection


    【解决方案1】:

    这是IBOutletCollection 的不幸事实。你可能想欺骗rdar://12121242

    您可以在IB中为每个视图设置一个标签,然后按tag对集合进行排序。您还可以按帧原点对集合进行排序。无论哪种情况,您都必须在 viewDidLoad 中手动执行此操作。

    【讨论】:

      【解决方案2】:

      假设您有一个名为 labelsArray 的 IBOutletCollection,并且您已将每个标签的标签属性设置为所需的顺序,那么代码是:

      -(void)viewDidLoad {
          self.labelsArray = [self.labelsArray sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"tag" ascending:YES]]];
      }
      

      【讨论】:

        【解决方案3】:

        是的,苹果在 IBOutletCollection 的帮助下为此提供了便利 像这样声明属性

        @property (nonatomic,retain) IBOutletCollection(UILabel) NSArray *labelsArray;
        

        用上述属性连接所有控件。

        在加载NIB文件时自动为你实例化labelsArray

        现在只需在您的程序中使用 labelsArray 即可。为维护顺序设置控件的标签值,如你所愿

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-21
          • 2018-10-05
          • 2017-11-17
          • 1970-01-01
          相关资源
          最近更新 更多