我在网站上看过很多帖子以及谷歌上的更多帖子,我坚持认为这很简单。我是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
答案 0 :(得分:1)
您要将UIImage
个对象添加为子视图。你不能这样做。您必须首先创建UIImageView
- 只能将UIView子类添加为子视图。
制作图像视图很简单 - 您可以alloc/initWithImage:
传入图像对象。您需要调整每个图像视图的帧,否则它们将全部在彼此之上。
此外,如果您使用滚动视图,则不需要平移手势识别器。滚动视图为您处理此问题。