当前位置: 代码迷 >> Iphone >> UIScrollView上面创建了许多按钮之后滚动不流畅的有关问题
  详细解决方案

UIScrollView上面创建了许多按钮之后滚动不流畅的有关问题

热度:90   发布时间:2016-04-25 05:59:16.0
UIScrollView上面创建了许多按钮之后滚动不流畅的问题
        现需要在一屏内展示许多按钮,目前我的做法就是在一个UIView里面创建一个UIScrollView,再在这个UIScrollView上面创建这些按钮。
        按钮是展示出来了,但是滚动UIScrollView的时候不是那么流畅:手指滑动的时候,经常就是点到按钮,从而导致UIScrollView滚动不流畅。
        大虾们支支招,看看有什么更好的办法,能在滚动UIScrollView的时候,不会触发按钮的按下操作。当按下按钮的时候,按钮该有的响应还存在。
ViewController的viewDidLoad里面控件创建代码如下:
UIScrollView *view=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    [view setUserInteractionEnabled:YES];
    [view setScrollEnabled:YES];
    //[view setContentSize:CGSizeMake(800,800)];
    
    //NO 发送滚动的通知 但是就算手指移动 scroll也不会动了 YES 发送通知 scroo可以移动
    [view setCanCancelContentTouches:YES];
    [view setBounces:NO];
    // NO 立即通知touchesShouldBegin:withEvent:inContentView 看是否滚动 scroll
    [view setDelaysContentTouches:NO];
    [view setContentSize:CGSizeMake(300, 900)];
    [self.view addSubview:view];
    
    
    CGFloat yPlacement = 50;
    for ( int i=0; i<30; ++i)
    {
        CGRect frame = CGRectMake(20, yPlacement,  self.view.bounds.size.width - (20 * 2.0), 40);
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btn.frame = frame;
        // 設定一般情況下 Button的文字 ( UIControlStateNormal | UIControlStateHighlighted ...)
        [btn setTitle:@"UIButtonTypeRoundedRect" forState:UIControlStateNormal];
        // 設定 Button 的 Click Event , UIControlEventTouchDown類似Click
        //[btn addTarget:self action:@selector(numBtnClick:) forControlEvents:UIControlEventTouchDown];
        [view addSubview:btn];
               
        yPlacement = yPlacement + 40 + 10;
    }