Похоже, что происходит следующее: геттер для landScapeView является сложным конструктором ... поэтому каждый раз, когда вы делаете [self landscapeView] или self.landscapeView, вы создаете совершенно новый UIScrollView и работаете с ним. .
Я бы попробовал что-то подобное в вашем .h файле:
@interface MyClass: MyParent {
UIScrollView *landscapeView;
}
@property (retain) UIScrollView *landscapeView;
... и это в вашем файле .m:
@implementation MyClass
@synthesize landscapeView;
(void)viewDidLoad
{ l = [[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 325)] autorelease];
[self.view addSubview:self.landscapeView]; [l release];
landscapeView.backgroundColor = [UIColor whiteColor];
landscapeView.delaysContentTouches = YES;
NSInteger iMargin, runningY, n;
iMargin = 3;
runningY = iMargin;
for (n = 1; n <= 38; n++) { //add day labels
UIButton *templabel = [[UIButton alloc] initWithFrame:CGRectMake(iMargin,runningY,320 - ( 2 * iMargin),20)];
templabel.backgroundColor = [UIColor grayColor];
[landscapeView addSubview:templabel];
[templabel release]; runningY = runningY + 30;
}
landscapeView.contentSize = CGSizeMake( 320, runningY);
}