在iOS中使不同的UIElements'活跃'

时间:2012-01-11 15:44:59

标签: objective-c ios user-interface uiscrollview uisegmentedcontrol

我有多个UIScrollView用作图像'过滤器',它们被加载到switch语句中。 switch语句基于UISgemgentedControllers段索引。

当我加载scrolView时,它的工作正常,但在加载下一个并返回第一个时,我无法滚动它,只能滚动我之前设置的那个。

例如:

初始化1>选择过滤器1

初始化2>选择过滤器2

返回1>仍然在过滤器2上(但滚动视图重新初始化)

有谁知道我如何轻松地在它们之间切换,让他们保持自己的位置并允许我单独访问它们?

下面是我的一个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 :(得分:0)

您是否检查过分段控制器中的代码?当再次选择第一个段时,听起来很可能没有正确显示它的UIImage。 Apple也改变了3.0后按钮的行为。值得一读的是:http://developer.apple.com/library/ios/ipad/#documentation/uikit/reference/UISegmentedControl_Class/Reference/UISegmentedControl.html

查看您选择的按钮行为是否符合预期。