【发布时间】:2012-01-12 00:31:14
【问题描述】:
我有多个 UIScrollViews 用作图像“过滤器”,它们在 switch 语句中加载。 switch 语句基于 UISgemgentedControllers 段索引。
当我加载 scrollView 时,它工作正常,但在加载下一个并返回第一个时,我无法滚动它,只能滚动我之前设置的那个。
例如:
初始化 1 > 选择过滤器 1
初始化 2 > 选择过滤器 2
返回 1 > 仍然在过滤器 2 上(但是滚动视图被重新初始化)
有谁知道我可以如何轻松地在它们之间切换并让它们保持位置并允许我单独访问它们?
下面是我的其中一个滚动视图的代码(它们都是一样的)
提前致谢!
~~~下面的代码~~~
- (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;
【问题讨论】:
标签: objective-c ios user-interface uiscrollview uisegmentedcontrol