![](/img/trans.png)
[英]Referencing objects programmatically which were set up with Interface Builder
[英]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.