簡體   English   中英

以編程方式設置參考出口

[英]Set referencing outlets programmatically

我有一個包含三行的視圖,並希望以編程方式為它們設置引用出口-如何完成?

IBOutlet只是一個標記,因此Interface Builder可以從筆尖知道要為哪些實例變量分配對象。 談論自動分配出口真的沒有意義-它們的整個目的是相反的方法。 IB代表Interface Builder。

如果要在筆尖中將對象分配給實例變量,則需要遍歷視圖層次結構,並采用某種方式來標識要收集的對象。

您可以通過在視圖控制器中訪問self.view來遍歷視圖層次結構。 如果筆尖中的對象不是主視圖的子視圖,則將無法訪問它們。 您可以使用UINib加載筆尖,而不是依靠內置功能來獲取這些對象。

您可以根據需要以幾種不同的方式標識對象。 您可以在Interface Builder中將整數分配給視圖的tag屬性。 您可以查看您知道將在層次結構中某個點上的視圖。 您可以查看特定類型的視圖。 或者,您可以混合搭配-例如,主視圖的UIButton子類帶有偶數標簽。

如果要使用Interface Builder布置視圖,則通常總是最簡單的方法是使用Interface Builder將視圖分配給出口。

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

不確定對象的ID。 嘗試在界面生成器的身份檢查器中查找

如果要使一個視圖的表格視圖單元格從左到右排序,則可以執行以下操作。

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];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM