2010-06-10 40 views
3

我想在界面生成器(包含在一個UIScrollView中)包含一些UILabels中建立一個子UIView,然後我想以編程方式「複製」此視圖調整其左側位置(通過其寬度的倍數)以實現「浮動「在UIScrollView中的左側效果。然後我想將這個複製的UIView添加回到UIScrollView中,爲UILabels添加不同的文本。如何以編程方式複製構建於界面構建器中的UIViews?

問題是我不知道如何以及如何「複製」UIViews。

回答

3

您可以嘗試致電[查看複製],但如果不起作用,我不會感到驚訝。您可以使用NSKeyedArchiver/NSKeyedUnarchiver序列化/反序列化視圖,但這也非常糟糕。

相反,你可能要加載的視圖的多個副本:

  1. 移動視圖你想變成自己的筆尖的多個副本。
  2. 讓你的對象「擁有」該筆尖(任何你想要負責加載的類)。
  3. 添加一個名爲「myView」的IBOutlet或其他,並將其分配給您的視圖。
  4. 在你的類,調用是這樣的:

-(UIView)makeMeANewMyView { 
    // Load MyView.nib into the myView outlet. 
    [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self]; 
    // Take ownership. 
    UIView * view = [[self.myView retain] autorelease]; 
    self.myView = nil; 
    return view; 
} 
2

我很新的Objective-C編程(和一般的oo編程)。我很難記住的一件事情是,只要你發現自己想把某些東西「複製」到多個地方,可能意味着你需要繼承某些東西,然後添加你的定製子類的新實例。在這種情況下,我想你會想創建一個UIView的子類,然後根據需要使用該自定義視圖?

請注意,我發佈了這個建議,它是值得的...我是一個完全noob的objective-c,只是在等待幫助解決我自己的問題!

相關問題