Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

carlosbutler

macrumors 6502a
Original poster
Feb 24, 2008
691
2
I had a working scrollview, but decided to create it from a subclass to make my code look tidy. It worked fine before, it could scroll and the UIButtons in it worked fine.

Loading it as a subclass, it loads and displays correctly but it will not scroll any more nor will the buttons touch. I guess something is in front of it, blocking any touch but, from what I have written, there is nothing in front and it should work fine.

I am on the move now, and can post some code if anyone would like to see. But I'm sure I am just missing some line of code? As I said the scroll view was working perfectly fine before hand, so there is nothing missing from that.

Thanks

EDIT: Code below
AppViewController.h
Code:
#import <UIKit/UIKit.h>
#import "MyScrollView.h"

@interface AppgViewController : UIViewController <NSXMLParserDelegate, UIScrollViewDelegate> {
	// Parsing the XML
	NSXMLParser *xmlParser;
	
	// Tab bar icons
	UIButton *button_TabBarOne, *button_TabBarTwo, *button_TabBarThree, *button_TabBarFour;
	UIImageView *imageview_TabBarOne, *imageview_TabBarTwo, *imageview_TabBarThree, *imageview_TabBarFour;
	
	MyScrollView *myScrollView;
}

@property (nonatomic, retain) UIButton *button_TabBarOne, *button_TabBarTwo, *button_TabBarThree, *button_TabBarFour;
@property (nonatomic, retain) UIImageView *imageview_TabBarOne, *imageview_TabBarTwo, *imageview_TabBarThree, *imageview_TabBarFour;
@property (nonatomic, retain) MyScrollView *myScrollView;

- (void)hello;
- (void)fadeOut;
- (void)addTabBar;
- (void)loadRScrollView;
- (void)parseXML;

@end

AppViewController.m
Code:
#import "AppViewController.h"

@implementation AppViewController

@synthesize button_TabBarOne, button_TabBarTwo, button_TabBarThree, button_TabBarFour;
@synthesize imageview_TabBarOne, imageview_TabBarTwo, imageview_TabBarThree, imageview_TabBarFour;
@synthesize myScrollView;

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
	[self addTabBar];
	[self parseXML];
	[self fadeOut];
        [self loadScrollView];
	
	[super viewDidLoad];
}

- (void)loadScrollView {	
	myScrollView = [[MyScrollView alloc] init];
	[self.view addSubview:myScrollView];
	[self.view bringSubviewToFront:myScrollView];
	myScrollView.userInteractionEnabled = YES;
}

MyScrollView.h
Code:
#import <UIKit/UIKit.h>

@interface MyScrollView : UIView <UIScrollViewDelegate> {  
}
- (void)hello;
@end

MyScrollView.m
Code:
#import "MyScrollView.h"


@implementation MyScrollView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
	
	
	UIScrollView *scrollview_One = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 205, 500)];
	scrollview_One.showsHorizontalScrollIndicator = scrollview_One.showsVerticalScrollIndicator = NO;
	scrollview_One.contentSize = CGSizeMake(205, 685);
	
	scrollview_One.backgroundColor = [UIColor grayColor];
	scrollview_One.delegate = self;
	
	UIButton *button_One = [UIButton buttonWithType:UIButtonTypeCustom];
	button_One.frame = CGRectMake(0, 0, 205, 137);
	[button_One setImage:[UIImage imageNamed:@"thumb_010.jpg"] forState:UIControlStateNormal];
	button_One.userInteractionEnabled = YES;
	
	UIButton *button_Two = [UIButton buttonWithType:UIButtonTypeCustom];
	button_Two.frame = CGRectMake(0, 200, 205, 137);
	[button_Two setImage:[UIImage imageNamed:@"thumb_011.jpg"] forState:UIControlStateNormal];
	
	UIButton *button_Three = [UIButton buttonWithType:UIButtonTypeCustom];
	button_Three.frame = CGRectMake(0, 400, 205, 137);
	[button_Three setImage:[UIImage imageNamed:@"thumb_012.jpg"] forState:UIControlStateNormal];
	
	UIButton *button_Four = [UIButton buttonWithType:UIButtonTypeCustom];
	button_Four.frame = CGRectMake(0, 600, 205, 137);
	[button_Four setImage:[UIImage imageNamed:@"thumb_013.jpg"] forState:UIControlStateNormal];
	
	UIButton *button_Five = [UIButton buttonWithType:UIButtonTypeCustom];
	button_Five.frame = CGRectMake(0, 800, 205, 137);
	[button_Five setImage:[UIImage imageNamed:@"thumb_014.jpg"] forState:UIControlStateNormal];
	
	
	[scrollview_One addSubview:button_One];
	[scrollview_One addSubview:button_Two];
	[scrollview_One addSubview:button_Three];
	[scrollview_One addSubview:button_Four];
	[scrollview_One addSubview:button_Five];
	
	[self addSubview:scrollview_One];
	[self bringSubviewToFront:scrollview_One];
	
	return self;
}
@end
 
Last edited:

Sydde

macrumors 68030
Aug 17, 2009
2,552
7,050
IOKWARDI
This does not make sense. If you want the buttons to slide around with the scroll view, you make them subviews of the content view. If you want them to be fixed in place above the scroll view, you make the subviews of the superview (MyScrollView). Generally speaking, you do not add subviews to a scroll view. Its subviews are the content view and the clip view. Anything more and it gets confused.

I assume you have not written and delegate methods because you have not gotten around to it?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.