通过滚动图像更改UIImageView

时间:2011-05-22 22:26:30

标签: iphone objective-c uiimageview

我有一个带图像的NSMutbleArray。我在UIIageView中输入了第一个图像,然后我希望用户在图像之间导航。我应该制作按钮还是有其他方法?我可以在用户触摸图像时执行此操作,例如ios上的照片吗?

我还有另一个问题。有一次我看到这种按钮,但是当我选择.xib时,我找不到它们?

image1

我只有对象库的基本按钮

image2

请帮助(对不起我的英语)

3 个答案:

答案 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)

让我先回答你的第二个问题。弹出菜单旁边的小控件控制库项目的显示方式:

Icon View List View

关于您的第一个问题,我建议您使用滑动手势识别器。首先,在视图控制器中,为滑动识别器执行操作以发送:

MyViewController.h

- (IBAction)showPriorImage;
- (IBAction)showNextImage;

MyViewController.m

- (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中,找到库中的滑动手势识别器:

Swipe Gesture Recognizer

将滑动手势识别器拖到图像视图上。在“属性”检查器中,将滑动方向设置为“左”。然后在对象列表中找到识别器(在XIB的左侧)并从中控制 - 拖动到文件的所有者。从弹出窗口中选择showPriorImage

现在将另一个滑动手势识别器拖到图像视图上。将其滑动方向设置为右侧,并将其连接到文件所有者的showNextImage操作。