У меня есть пользовательское представление с высотой 800 в XIB, как показано на рисунке:
это иерархия:
этот код на моем customView.m:
- (id)initWithFrame:(CGRect)frame
{
NSLog(@"initWithFrame");
self = [super initWithFrame:frame];
if (self) {
[self setup];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder {
NSLog(@"initWithCoder");
self = [super initWithCoder:aDecoder];
if(self) {
[self setup];
}
return self;
}
- (void)setup {
[[NSBundle mainBundle] loadNibNamed:@"customView" owner:self options:nil];
[self addSubview:self.view];
self.view.frame = CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, CGRectGetHeight(self.view.frame));
//[self.myscrollview setContentSize:CGSizeMake([[UIScreen mainScreen] bounds].size.width, 2000)];
NSLog(@"contentSize Height :%f", self.myscrollview.contentSize.height);
NSLog(@"contentView Height :%f", self.contentView.frame.size.height);
}
и addSubview customView на моем представлении viewController:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
customView *myView = [[customView alloc] init];
[self.view addSubview:myView];
}
загружен, но scrollView не прокручивается.Затем я проверяю высоту customView и contentView, она возвращает 800, но высота scrollView contentSize возвращает 0. Поэтому я попытался установить для contentSize значение 2000, но он все еще не прокручивается.меня смутило то, что после того, как я установил конечный scrollView, ведущий, нижний и верхний 0 на superView, он не следует высоте contentView, вместо этого возвращает 0. Как я должен установить contentSize тогда?
примечание: contentView имеет высоту и ширину, равные superView, и приоритет установлен на 250
github: пример проекта