我有一個UIScrollView在其中的UIViewController。如何以編程方式嵌入筆尖?
然後我創建了一個新的UIView子類,其中包含一些我想以編程方式在此UIScrollView中添加的屬性,直到我的數據結束。
的事情應該是這樣的畫面是:
我已閱讀等話題,做的是通過創建一個視圖和它的類型設置爲自定義視圖的子類,但我想以編程方式及其不做加工。
我該怎麼做?
我有一個UIScrollView在其中的UIViewController。如何以編程方式嵌入筆尖?
然後我創建了一個新的UIView子類,其中包含一些我想以編程方式在此UIScrollView中添加的屬性,直到我的數據結束。
的事情應該是這樣的畫面是:
我已閱讀等話題,做的是通過創建一個視圖和它的類型設置爲自定義視圖的子類,但我想以編程方式及其不做加工。
我該怎麼做?
從您的圖像看來,您希望從一個筆尖加載視圖並將它們添加爲您的UIScrollView的子視圖。要做到這一點看看UINib documentation。
你想創建你的筆尖,並將它的主視圖設置爲你的UIView子類的一個實例,然後加載你的viewController的viewDidLoad
的筆尖,並添加筆尖的視圖作爲你scrollview的子對象(我假設viewController視圖的子視圖)。
您可以用instantiateWithOwner:options:
實例化一個筆尖。
This method unarchives each object, initializes it, sets its properties to their configured values, and reestablishes any connections to other objects
要獲得的從筆尖意見數組你做類似的東西:
UINib *myNib = [UINib nibWithNibName:@"myNib" bundle:[NSBundle mainBundle]];
NSArray *viewsFromNib = [myNib instantiateWithOwner:nil options:nil];
我會認爲我們是一個UIViewController內,我們在(或之後)是某處viewDidLoad
。然後,您將使用上面的數組,並將視圖添加爲滾動視圖的子視圖。您可能需要設置這些視圖的框架以正確放置它們,但這應該是微不足道的。
UIView *aView = [viewsFromNib objectAtIndex:0];
[self.scrollView addSubview:aView];
我希望你能朝着正確的方向前進。
編輯:
如果你想你可能需要閱讀深入碎粒如何工作來管理你的期望更多的信息。與UINib文檔鏈接的是「資源編程指南」,特別是nib section
不錯,它的工作原理。唯一的是我無法將屬性設置爲我的嵌入視圖。我試過'MySubClass * aView = [viewsFromNib objectAtIndex:0]; aView.myProp = 100'但是不起作用。我認爲它實際上改變了房地產價值,但它並不是「令人耳目一新」的觀點。 – 2012-08-06 23:44:58
在視圖上設置屬性不會改變視圖,除非在視圖中定義行爲以在屬性更改時自行更新,或者通過'[view setNeedsLayout]'或'setNeedsDisplay'指示重繪/重新佈局自身。查看我的編輯以閱讀更多關於筆尖的內容,以便您可以管理您對事物行爲的期望。 – Jessedc 2012-08-07 00:42:20
不錯,我錯過了我的標籤屬性上的自定義setter。謝謝! – 2012-08-07 14:09:27
安德烈,這可以相對容易地完成。確保導入要嵌入的類。然後創建它們與正常
ClassName *subview=[[ClassName alloc]init];
[subview.view setFrame:CGRectMake(x,y,width,height)];
[self.view addSubview:subview.view];
,將其添加到x,y座標您與您的寬度,高度指定的大小指定。您可以在viewDidLoad中或在需要創建時執行此操作。
我已經試過了。這段代碼給了我這個錯誤:'終止應用程序,由於未捕獲的異常'NSInternalInconsistencyException',原因:'請求窗口的視圖' – 2012-08-06 22:02:49
看到我的編輯,我剛剛測試,它正在工作。 – 2012-08-06 22:21:22
錯誤消失,但沒有顯示出來 – 2012-08-06 23:33:15
爲什麼重新發明輪子?使用帶有自定義UITableViewCells的UITableView – Mario 2012-08-06 22:53:47
可能是一種可能性,但是我可以像在我的視圖中那樣繪製單元格,並使其在UIScrollView中工作得更快嗎?因爲我可以看到使用tableview或scrollview之間的唯一區別是我不必製作cellForRowAtIndexPath。 – 2012-08-06 23:51:22