Делаем разные элементы UIE «активными» в iOS - PullRequest
0 голосов
/ 11 января 2012

У меня есть несколько UIScrollViews, используемых в качестве «фильтров» изображения, которые загружаются в оператор switch.Оператор switch основан на индексе сегмента UISgemgentedControllers.

Когда я загружаю scrolView, он работает нормально, но при загрузке следующего и возвращении первого я не могу прокрутить его, а только тот, который я ранее установил.

Например:

Инициализация 1> Выбор фильтра 1

Инициализация 2> Выбор фильтра 2

Возврат к 1> Все еще на фильтре 2 (однако scrollViewповторная инициализация)

Кто-нибудь знает, как я могу легко переключаться между ними, чтобы они могли сохранять свое положение и разрешать мне доступ к ним по отдельности?

Ниже приведен мой код для одного из scrollViews (онивсе одинаковые)

Заранее спасибо!

~~~ Код ниже ~~~

- (void)layerSelected:(id)sender
{
int index = filterControl.selectedSegmentIndex;

switch (index)
{
    case 0: if (scroll == nil)
            {   
                scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
                scroll.pagingEnabled = YES;
                scroll.delaysContentTouches = NO;
                scroll.userInteractionEnabled = YES;
                NSInteger viewCount = 15;
                for (int i = 0; i < viewCount; i++) 
                {
                    CGFloat yOrigin = i * self.view.frame.size.width;
                    UIImageView *filterViewOverlay = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
                    [filterViewOverlay setImage:[filterManager objectAtIndex:i]];
                    [scroll addSubview:filterViewOverlay];
                    [filterViewOverlay release];
                }
                scroll.contentSize = CGSizeMake(self.view.frame.size.width * viewCount, self.view.frame.size.height);
                [self.scroll setContentOffset:currentPos1];
                [self.view addSubview:scroll];
                [scroll release];
            }
            else
            {
                [self.scroll setContentOffset:currentPos1];
                scroll.scrollEnabled = YES;
            }

            break;

1 Ответ

0 голосов
/ 11 января 2012

Вы проверили код в сегментированном контроллере?Вероятно, он неправильно отображает свой UIImage при повторном выборе первого сегмента.Также Apple изменила поведение кнопок после 3.0.Стоит прочитать здесь: http://developer.apple.com/library/ios/ipad/#documentation/uikit/reference/UISegmentedControl_Class/Reference/UISegmentedControl.html

, чтобы увидеть, ожидается ли поведение выбранной вами кнопки.

...