Как переместить прокрутку (по горизонтали) на основе положения в его подвиде

Я добавляю ряд кнопок в свой вид прокрутки, поэтому, нажав кнопку, я хочу выделить ее и отменить выбор остальных. Так что все работает нормально. Но мне нужно еще одно поведение, например, если выделена вторая кнопка, я хочу показать часть третьей кнопки, чтобы пользователь знал, что есть еще одна категория.

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 Спасибо.


person siva krishna    schedule 07.07.2015    source источник


Ответы (1)


Так в чем проблема, это простой расчет смещения контента. Если выделенная кнопка является последней кнопкой в ​​текущем видимом фрейме прокрутки, вы можете добавить некоторое жестко заданное значение (скажем, 50) к содержимому offset.x.

person Mousam    schedule 07.07.2015
comment
Я немного смущен, как узнать, что выделена последняя кнопка в текущем видимом кадре прокрутки? - person siva krishna; 08.07.2015
comment
Текущая видимая рамка прокрутки может быть рассчитана по смещению содержимого + границам прокрутки, в то время как положение кнопки в прокрутке может быть определено рамкой кнопки - person Mousam; 09.07.2015