我有一个带图像的NSMutbleArray。我在UIIageView中输入了第一个图像,然后我希望用户在图像之间导航。我应该制作按钮还是有其他方法?我可以在用户触摸图像时执行此操作,例如ios上的照片吗?
我还有另一个问题。有一次我看到这种按钮,但是当我选择.xib时,我找不到它们?
我只有对象库的基本按钮
请帮助(对不起我的英语)
答案 0 :(得分:2)
请观看WWDC 2010上的“使用滚动视图设计应用程序”。
启动here,登录,然后查找该标题,然后点击“在iTunes中观看”。
答案 1 :(得分:0)
-(void)viewDidLoad {
UIButton *image = [UIButton buttonWithType:UIButtonTypeCustom];
[self setCurrentIndex:0];
[image setImage:[array objectAtIndex:0] forState:UIControlStateNormal];
[image addTarget:self action:@selector(nextImage:) forControlEvents:UIControlEventTouchUpInside]
[[self view] addSubview:image];
}
-(void)nextImage:(id)sender {
UIButton *button = (UIButton *)sender;
[self setCurrentIndex:[self currentIndex] + 1];
if([self currentIndex] >= [array count]) {
[self setCurrentIndex:0];
}
[button setImage:[array objectAtIndex:[self currentIndex]] forState:UIControlStateNormal];
}
您需要保留一个名为currentIndex
的引用变量,以跟踪您在数组中的位置以及显示下一个图像的图像。这是一个非常尴尬的方法,但可能是最容易理解和最快的代码。
回答第二个问题:这些按钮适用于mac应用程序,而不适用于iPhone应用程序。您在创建xib时不会看到它们,因为iPhone不支持它们。
答案 2 :(得分:0)
让我先回答你的第二个问题。弹出菜单旁边的小控件控制库项目的显示方式:
关于您的第一个问题,我建议您使用滑动手势识别器。首先,在视图控制器中,为滑动识别器执行操作以发送:
- (IBAction)showPriorImage;
- (IBAction)showNextImage;
- (IBAction)showPriorImage
{
// You'll need to change this based on how you track the current image.
if (self.currentImageIndex > 0)
self.imageView.image = [self.images objectAtIndex:--self.currentImageIndex];
}
- (IBAction)showNextImage
{
// You'll need to change this based on how you track the current image.
if (self.currentImageIndex < self.images.count - 1)
self.imageView.image = [self.images objectAtIndex:++self.currentImageIndex];
}
然后,在您的XIB中,找到库中的滑动手势识别器:
将滑动手势识别器拖到图像视图上。在“属性”检查器中,将滑动方向设置为“左”。然后在对象列表中找到识别器(在XIB的左侧)并从中控制 - 拖动到文件的所有者。从弹出窗口中选择showPriorImage
。
现在将另一个滑动手势识别器拖到图像视图上。将其滑动方向设置为右侧,并将其连接到文件所有者的showNextImage
操作。