How to set up a subclass of UIScrollView, and connect it in Interface Builder

风流意气都作罢 提交于 2019-12-11 12:30:18

问题


First of all I began with the code below in my view controller but for reasons that work for me I needed the below code to be in a separate class. So I created a CustomView class which I've posted below.

At this point is it possible for me to create an instance of this class in my view controller, create an IBOutlet and connect it to a UIScrollView (or some kind of view) in interface builder and get the same kind of behavior, and how would I do something like that?

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:


You can create an instance of CustomView in IB quite easily. Just drag out a UIScrollView and position it however you want. Then open the Identity Inspector (cmd+4) and change the class to CustomView. You can then hook this to an outlet like normal.




回答2:


Do you really want a UIScrollView inside your UIScrollView?

Your scrollView instance should be nil in your init method, so accessing it won't work as expected.

I am not sure the whole construct / hierarchy is what you want...



来源:https://stackoverflow.com/questions/4206492/how-to-set-up-a-subclass-of-uiscrollview-and-connect-it-in-interface-builder

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!