2013-11-28 3 views
1

Я использую следующий код для создания своего представления.Проблема с вертикальной прокруткой в ​​UIScrollView

self.percentage_ans_view = [[UIView alloc] init]; 
    float height = 0.0f; 

    for (int i=0; i < answer_set.count; i++) { 

     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20,height ,280,50)]; 
     [label setText: [self.answer_set objectAtIndex:i]]; 
     [label setTextAlignment:NSTextAlignmentLeft]; 
     [label setBackgroundColor:[UIColor clearColor]]; 
     label.textColor = [UIColor colorWithRed:0.2941f green:0.4666f blue:0.9549f alpha:1.0f]; 
     label.lineBreakMode = NSLineBreakByWordWrapping; 
     label.numberOfLines = 0; 
     [label sizeToFit]; 
     // label.tag = 5000 + i; 
     label.userInteractionEnabled = YES; 
     label.font = [UIFont fontWithName:@"Arial" size:14.0f] ; 
     [self.percentage_ans_view addSubview:label]; 

     height += label.frame.size.height; 

     NSLog(@"LABEL SIZE height : %f & width : %f",label.frame.size.height,label.frame.size.height); 

     NSLog(@"ans:%@", [self.answer_set objectAtIndex:i]);     

     UIButton *ans_btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
     ans_btn.frame = CGRectMake(0 - 5, height, (width * 3)+ 20,40);//CGRectMake(0 - 5, 45 + (i * 80), (width * 3)+ 20,40) 
     [ans_btn setTitle:[NSString stringWithFormat:@"%d%@",percent,@"% "] forState:UIControlStateNormal]; 
     ans_btn.titleLabel.font = [UIFont boldSystemFontOfSize:20]; 
     ans_btn.titleLabel.textColor = [UIColor whiteColor]; 
     ans_btn.backgroundColor = [UIColor colorWithRed:0.2941f green:0.4666f blue:0.9549f alpha:1.0f] ; 

     // ans_btn.frame = frame; your desired size 
     ans_btn.clipsToBounds = YES;    

     height += ans_btn.frame.size.height; 

     [self.percentage_ans_view addSubview:ans_btn]; 
    } 

    [self.swipe addSubview:self.percentage_ans_view]; 

Здесь self.swipe является UIScrollView, не прокрутки по вертикали. Поэтому я не могу видеть последние два ярлыка и кнопку моего представления. Что я делаю неправильно?

+1

Проверьте размер содержимого прокрутки. – danypata

ответ

2

Правильно настройте свойство contentSize вашего UIScrollView (в основном ширина/высота содержимого, которое может отображаться в прокрутке без прокрутки), установите для свойства pagingEnabled вида прокрутки значение YES, а затем добавьте свое представление, которое вы хотите прокрутить в качестве подсмотра UIScrollView.

До тех пор, пока длина подвидности больше ширины указанного вами содержимого, она должна прокручиваться по вертикали.

0

Если это scrollView является IBOutlet, проверьте, отключен ли автозапуск для родительского представления.

Если вы используете auto layout, вы должны добавить ограничения в подвалы scrollViews, которые будут полностью определять его contentSize.

+0

вы можете найти лучшее описание здесь - [UIScrollView contentSize не работает] (http://stackoverflow.com/questions/12846351/uiscrollview-contentsize-not-working) – Florelit

Смежные вопросы