ios 8 - 滚动不起作用

时间:2014-09-22 09:56:20

标签: ios objective-c iphone uiscrollview ios8

我正在使用UIScrollView。在运行时,我将UIButton添加到scrollview。在iOS 7中它可以很好地工作但在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)];
}

2 个答案:

答案 0 :(得分:4)

我得到了解决方案。

我创建了UIScrollview的子类并在其中添加了此方法。

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

答案 1 :(得分:0)

我认为您应该使用UICollectionView来生成您想要的内容。 UICollectionView允许创建垂直和水平无限滚动面板。它与UITableView类似,您只需设置一些DataSource方法和委托方法。

在这里查看UICollectionView

的示例