2014-09-22 4 views
1

Я использую UIScrollView. Во время выполнения я добавляю UIButton в scrollview. В iOS 7 он работает отлично, но в iOS 8 у меня возникают проблемы при прокрутке (очень сложно прокручивать).ios 8 - прокрутка не работает

Вот мой код. Пожалуйста, предложите мне, что я делаю неправильно или в iOS 8, есть ли новое свойство? ,

-(void)renderAllCatealogue:(NSArray *)catalogueArr 
{ 
    [[scollViewCatlog subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; 
    int x=0; 
    for (NSDictionary *dict in catalogueArr) 
    { 
    UIView *view =[[UIView alloc]initWithFrame:CGRectMake(x, 8, 1, 16)]; 
    [view setBackgroundColor:[UIColor whiteColor]]; 
    [scollViewCatlog addSubview: view]; 

    //calculate width 
    UIFont *font=[UIFont fontWithName:BOLD_FONT size:15]; 
    CGFloat width=[[CommonUISetting sharedInstance]widthOfString:[dict valueForKey:@"catalogTitle"] withFont:font]; 

    UIButton * btn =[UIButton buttonWithType:UIButtonTypeCustom]; 
    [btn setFrame:CGRectMake(x+10, 1, width, 30)]; 
    [btn setTitle:[dict valueForKey:@"catalogTitle"] forState:UIControlStateNormal]; 

    [btn setTag:[[dict valueForKey:@"catalogId"] integerValue]]; 
    [btn.titleLabel setFont:font]; 
    [btn addTarget:self action:@selector(catlogBtnClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    [btn.titleLabel setFont:[UIFont fontWithName:BOLD_FONT size:15]]; 
    [btn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal]; 

    [scollViewCatlog addSubview:btn]; 
    x=x+width +15; 

} 
[scollViewCatlog setContentSize:CGSizeMake(x, 1)]; 
} 

ответ

4

я получил решение.

Создайте подкласс UIScrollview и добавьте этот метод в него.

- (BOOL)touchesShouldCancelInContentView:(UIView *)view 
{ 
return YES; 
} 
+0

Это настоящий спасатель! У меня была такая же проблема с прокруткой, и это было единственное рабочее решение. – xZenon

+1

Да! Это для меня с той же проблемой - большое спасибо! Добавление этого: Напоминаем, что если вы подключаете вид прокрутки (или что-то в этом роде) к розетке через IB, не забудьте зайти (в IB) на вкладку «Проверка идентификатора» на правой панели и изменить пользовательскую класс. –

0

Я думаю, вы должны использовать UICollectionView, чтобы сгенерировать что-то, что хотите. UICollectionView позволяет создавать вертикальную, а также горизонтальную бесконечную панель прокрутки. Он похож на UITableView, вам просто нужно настроить некоторые методы DataSource и методы делегирования.

смотрите здесь для образца UICollectionView

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