[英]How to access a UIView inside of a UIView
我是新來的iOS開發,我想知道,如果它是在所有可能訪問UIView
從內UIView
。
我當前的設置是我有一個帶有UIView
的主UIViewController
。 在該UIView
我有一個較小的UIView
,用於顯示調試信息。 我想做的是能夠以某種方式訪問該視圖,以便我可以在需要時查看/隱藏它,或者在嘗試調試邏輯錯誤時甚至可以更改背景顏色。
我試圖使用self.view訪問它,但這只是給我父視圖。 我已經在各種站點和教程中看到需要將其添加到subView並從那里開始工作,但是當我這樣做時,視圖設置為0x0。 我還看到我需要使用IBOutlet
並且在IB中需要引用它,但是我不知道如何執行該操作,因為我看不到我在控制器的頭文件中定義的對象(在IB中的任何位置) 。
任何建議將不勝感激。
如果要通過IB訪問第二個UIView:
@property (nonatomic, retain) IBOutlet UIView *myView
在ViewController中創建一個插座@property (nonatomic, retain) IBOutlet UIView *myView
(當然,將其合成) self.myView
訪問您的視圖(如果一切正確,它將具有非nil值) 最簡單的方法是在ViewController的.h文件中設置IBOutlet
,然后將該嵌入視圖(或子視圖)連接到該IBOutlet。
然后,您可以隨時根據需要設置hidden
屬性的打開和關閉。
請查閱此Apple文檔 ,其中描述了如何使用Xcode 4設計用戶界面,並特別注意“直接使用源代碼進行連接”部分。
給出的答案很好,這是另一種方法:給視圖添加標簽(一個int,例如“ 1”),然后像這樣訪問它:
UIView * viewToGet = [theMainView viewWithTag:1]
您可以在IB和代碼中分配標簽。
如果要在代碼中創建子視圖,則需要設置子UIView
的frame
(起點和大小)並執行[self.view addSubview:myChildView]
。 您可以使用屬性或ivar跟蹤此uiview,以便以后引用它以將其隱藏。
如果您使用的是xib文件,並且在xib內部定義了子視圖,則可以,您很可能想定義一個IBOutlet來引用該元素。 就像是:
@property (nonatomic, retain) IBOutlet UIView * myChildView;
在實現中,您將需要:
@implementation MyCoolViewController
@synthesize myChildView = _myChildView;
-(void) dealloc
{
// make sure to release reference so the property gets cleaned up
[_myChildView release], _myChildView = nil;
[super dealloc];
}
-(void)someFunc
{
self.myChildView.hidden = YES; // or NO
}
在Interface Builder中,您需要將該插座分配到Xib中的某個視圖。 通常,您可以通過選擇“所有者”來執行此操作,然后在“連接檢查器”中單擊您的屬性名稱,然后將其拖動到要分配給它的UIView中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.