以编程方式设置引用插座

时间:2011-12-21 17:15:54

标签: iphone ios

我有一个包含三行的视图,并希望以编程方式为它们设置引用出口 - 这是如何完成的?

3 个答案:

答案 0 :(得分:1)

IBOutlet只是一个标记,因此Interface Builder知道哪些实例变量要从您的笔尖分配对象。谈论自动分配出口并没有多大意义 - 它们的全部目的都是针对相反的方法。 IB代表Interface Builder。

如果要将nib中的对象分配给实例变量,则需要跳过视图层次结构并使用某种方法识别要收集的对象。

您可以通过访问视图控制器中的self.view来跳过视图层次结构。如果nib中的对象不是主视图的子视图,则无法访问它们。您可以使用UINib加载nib,而不是依靠内置功能来获取这些对象。

您可以根据需要以多种不同方式识别对象。您可以在Interface Builder中将整数分配给视图的tag属性。您可以查看层次结构中某个特定点的视图。您可以查看特定类型的视图。或者你可以混合和匹配 - 例如,主视图的UIButton子类带有偶数标记。

如果您使用Interface Builder布局视图,则最简单的方法就是使用Interface Builder简单地将视图分配给出口。

答案 1 :(得分:0)

(any pointer) = [[self.view subviews] objectAtIndex:(object's index)];

不确定对象的ID。尝试在界面构建器的身份检查器中找到

答案 2 :(得分:0)

如果您希望从左到右排序一个视图的表视图单元格,则可以执行以下操作。

NSMutableArray *myCells = [[NSMutableArray alloc] initWithCapacity:NUMBER_OF_CELLS];
NSArray *allSubviews = [theView subviews];

for(NSView *aSub in allSubviews) {
    if([aSub isKindOfClass:[MyCustomCellViewClass class]]) {
        [myCells addObject:aSub];
    }
}

// Here you can sort your found cells with their origin's x values.
// -[NSMutableArray sortUsingFunction:context:] can help you with that.
// Do what you want to do
[myCells release];