我正在使用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)];
}
答案 0 :(得分:4)
我得到了解决方案。
我创建了UIScrollview
的子类并在其中添加了此方法。
- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
return YES;
}
答案 1 :(得分:0)
我认为您应该使用UICollectionView
来生成您想要的内容。 UICollectionView
允许创建垂直和水平无限滚动面板。它与UITableView
类似,您只需设置一些DataSource方法和委托方法。
在这里查看UICollectionView
的示例