我在 Xib 中将 UITextfields 的引用插座集合排列为一个在另一个之下。当我打印引用插座集合时,我发现它是无序的。我需要自动排列文本字段,即文本 fileld 在 UI 中排在第一位,应该在 Outlet Collection Array 中排在第一位。任何的想法?
问问题
1438 次
3 回答
5
这是一个不幸的事实IBOutletCollection
。您可能想欺骗rdar://12121242。
您可以在 IB 中为每个视图设置一个标签,然后按 . 对集合进行排序tag
。您还可以按帧原点对集合进行排序。无论哪种情况,您都必须手动执行此操作viewDidLoad
。
于 2013-02-13T07:42:44.830 回答
4
假设您有一个名为 labelsArray 的 IBOutletCollection,并且您已将每个标签属性设置为所需的顺序,则代码为:
-(void)viewDidLoad {
self.labelsArray = [self.labelsArray sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"tag" ascending:YES]]];
}
于 2013-05-03T08:39:25.853 回答
1
是的,苹果在 IBOutletCollection 的帮助下为此提供了便利声明这样的属性
@property (nonatomic,retain) IBOutletCollection(UILabel) NSArray *labelsArray;
连接所有具有上述属性的控件。
在加载 NIB 文件时自动为您实例化 labelsArray
现在只需在您的程序中使用 labelsArray 即可。为维护顺序设置控件的标签值,如你所愿
于 2013-02-13T07:51:56.003 回答