如何根据其子视图位置移动scrollview(水平)

时间:2015-07-07 12:01:52

标签: ios uiscrollview contentoffset

我在滚动视图中添加了一系列按钮,因此在点击按钮时我想突出显示该按钮并取消选择剩下的所有按钮。所以每件事都很好。但我需要一个更多的行为,如果第二个按钮突出显示我想显示第三个按钮的某些部分,以便用户知道还有一个类别。

float offset=0;


for(int i=0;i<[arrMaincat count];i++)
{

    UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
    btn.tag=i;
    btn.titleLabel.font=[UIFont systemFontOfSize:12];

    btn.titleLabel.lineBreakMode=UILineBreakModeTailTruncation;
    NSString *Categoryname=[[arrMaincat objectAtIndex:i] objectForKey:@"Name"];

    CGSize constraint=CGSizeMake(1000, 30);
    CGSize size1 = [Categoryname sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

        btn.frame=CGRectMake(offset, 0, size1.width, 30);


    [btn setTitle:Categoryname forState:UIControlStateNormal];

    [btn setTitle:Categoryname forState:UIControlStateSelected];
    [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [btn setTitleColor:UIColorFromRGB(0Xe08043) forState:UIControlStateSelected];

    [btn addTarget:self action:@selector(CategoryChanged:) forControlEvents:UIControlEventTouchUpInside];

    offset=btn.frame.origin.x+btn.frame.size.width+10;

    [self.SliderScroll addSubview:btn];

  }

self.SliderScroll.contentSize=CGSizeMake(offset, SliderScroll.frame.size.height);

重新编码http://pastie.org/10277453 这是我的截图https://www.dropbox.com/s/xpq9vy39eecab1g/Screen%20Shot%202015-07-07%20at%205.34.15%20pm.png?dl=0 谢谢

1 个答案:

答案 0 :(得分:0)

问题是什么,它是一个简单的内容偏移计算。如果突出显示的按钮是滚动视图的当前可见帧中的最后一个按钮,则可以将一些硬编码值(假设为50)添加到内容偏移量。