2010-11-17 34 views
1

首先,我從下面的代碼開始,在我的視圖控制器中,但由於我工作的原因,我需要將下面的代碼放在單獨的類中。所以我創建了一個我在下面發佈的CustomView類。如何設置UIScrollView的子類,並在Interface Builder中將其連接起來

在這一點上,我有可能在我的視圖控制器中創建這個類的一個實例,創建一個IBOutlet並將它連接到界面生成器中的UIScrollView(或某種視圖),並獲得相同類型的行爲,我將如何做這樣的事情?

customView.m

#import <UIKit/UIKit.h> 
#import <QuartzCore/QuartzCore.h> 

@interface CustomView : UIScrollView <UIScrollViewDelegate> { 

    UIScrollView *scrollView; 
    UIImageView  *imageView; 

} 

@property (nonatomic, retain) IBOutlet UIScrollView  *scrollView; 
@property (nonatomic, retain) UIImageView    *imageView; 

customView.m

#import <UIKit/UIKit.h> 

@implementation CustomView 
@synthesize scrollView, imageView; 


    - (id)init { 

     if (self = [super init]) { 

      // Initialization code 
      UIImageView *temp = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myImage.png"]]; 
      self.imageView = temp; 
      [temp release]; 

      scrollView.contentSize = CGSizeMake(imageView.frame.size.width, imageView.frame.size.height); 
      //Other Scroll View Properties 
      scrollView.delegate = self; 
      [scrollView addSubview:imageView]; 
     } 

     return self; 
    } 


    - (void)dealloc { 
     [scrollView release]; 
     [imageView release]; 
     [super dealloc]; 
    } 


    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

     //Perform an action 

    } 

    @end 
+1

第二個UIScrollView怎麼了? – Brandon 2010-11-17 16:23:37

回答

5

您可以在IB創建CustomView一個實例很容易。只需拖出UIScrollView然後將其定位即可。然後打開Identity Inspector(cmd + 4)並將類更改爲CustomView。然後,您可以像正常一樣將其鉤到插座上。

+0

所以我需要在我的視圖控制器中創建這個類的實例,然後在alloc和init中聲明viewDidLoad方法? – cgossain 2010-11-17 16:34:57

+0

你會像任何其他IB店一樣對待它。因此,將伊娃添加到您的控制器中,使用'IBOutlet'修飾符添加@property,@synthesize,在'viewDidUnload'和'dealloc'中釋放它,最後連接IB中的插座。然後等到viewDidLoad方法在你的控制器中觸發時,這個類的一個實例將被完全實例化並添加到控制器的視圖中。所有這些都發生在後臺,不需要你自己alloc-init。 – 2010-11-17 16:48:26

+1

我已經完成了,但它似乎不是加載我的視圖滾動視圖 – cgossain 2010-11-17 17:01:02

2

你真的想在你的UIScrollView中使用UIScrollView嗎?

您的scrollView實例應該在您的init方法中爲零,因此訪問它不會按預期工作。

我不確定整個結構/層次結構是你想要的...

+0

老實說,我試圖創建一個自定義控件,使用UIScrollView從左到右滑動並相信我,它工作得很好。唯一的是,我想爲我的控件創建一個自定義類,以便我能夠在界面生成器中將它連接到一個非常隱蔽的地方,並具體執行 – cgossain 2010-11-17 16:53:52

+1

然後,您可能應該*從*繼承UIScrollView *或*從常規UIView繼承幷包含一個,但不是兩個。 – Eiko 2010-11-17 17:26:00

相關問題