将图片添加到UIScrollView - 使用数组滑动切换效果

时间:2012-10-26 21:01:16

标签: ios arrays uiscrollview slideshow

我在网站上看过很多帖子以及谷歌上的更多帖子,我坚持认为这很简单。我是iOS新手,我很可能一直在错误地阅读其他帖子。我正在尝试用我自己的逻辑和尝试来学习和编写自己的代码,所以我看起来与我找到的其他代码有很大不同......这就是为什么它不起作用我确定!

我正在尝试使用从右到左滑动来拍摄照片,但我希望将下一张照片拉过来并滑入到位,而不是我已完成的即时开关here。根据许多建议,我试图使用UIScrollView。我无法加载任何内容,应用程序在loadImages的最后一行崩溃。我已经调试但似乎无法弄清楚为什么它没有显示subView。

这是我的viewDidLoad:

    [super viewDidLoad];
// Do any additional setup after loading the view.
i = 0;
//add UIPanGestureRecognizer
UIPanGestureRecognizer *aPan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(loadImages)];
[aPan setMaximumNumberOfTouches:1];
[aPan setMinimumNumberOfTouches:1];
[self.view addGestureRecognizer:aPan];


_PhotoBundle = [[NSBundle mainBundle] pathsForResourcesOfType:@".jpg"inDirectory:@"Otter_Images"];

_PhotoArray = [[NSMutableArray alloc] initWithCapacity:_PhotoBundle.count];
for (NSString* path in _PhotoBundle)
{
    [_PhotoArray addObject:[UIImage imageWithContentsOfFile:path]];
}

[self loadImages];

这是我的loadImages:

-(void)loadImages

{     NSLog(@"在loadImages");

_currentImage = [_PhotoArray objectAtIndex:i];
_nextImage = [_PhotoArray objectAtIndex:i + 1];
_prevImage = [_PhotoArray objectAtIndex:i -1];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
[scrollView setScrollEnabled:YES];
[scrollView setClipsToBounds:YES];

if (i <= _PhotoArray.count)
{
    [scrollView addSubview:_currentImage]; ////crash!!!!
}
else
{
    _currentImage = [_PhotoArray objectAtIndex:0];
    [scrollView addSubview:_currentImage]; /// Crash!!!!
}

NSLog(@"end of loadImages");

}

我已经停止了功能,直到我可以加载一个图像。然后我将添加幻灯片的功能......我希望我接近这个。

非常感谢您的帮助!!

编辑:

这是我的.m界面,用于设置ImageViews:

@interface ScrollViewViewController ()

@property (nonatomic, retain) NSArray *PhotoBundle;
@property (nonatomic, retain) NSMutableArray *PhotoArray;
@property (nonatomic, retain) UIImageView *currentImage;
@property (nonatomic, retain) UIImageView *nextImage;
@property (nonatomic, retain) UIImageView *prevImage;

@end

1 个答案:

答案 0 :(得分:1)

您要将UIImage个对象添加为子视图。你不能这样做。您必须首先创建UIImageView - 只能将UIView子类添加为子视图。

制作图像视图很简单 - 您可以alloc/initWithImage:传入图像对象。您需要调整每个图像视图的帧,否则它们将全部在彼此之上。

此外,如果您使用滚动视图,则不需要平移手势识别器。滚动视图为您处理此问题。