Iphone 从左向右移动阵列图像

Iphone 从左向右移动阵列图像,iphone,objective-c,ios7,Iphone,Objective C,Ios7,我有一个八阵列图像和两个按钮左键,右键。当我点击右键时,它应该移动到下一个图像。单击左键移动到上一个图像 UIImage *image1 = [UIImage imageNamed:@"a1.png"]; UIImage *image2 = [UIImage imageNamed:@"a7.png"]; UIImage *image3 = [UIImage imageNamed:@"a8.png"]; UIImage *image4 = [UIImage imageNamed:@"a3.png"

我有一个八阵列图像和两个按钮左键,右键。当我点击右键时,它应该移动到下一个图像。单击左键移动到上一个图像

UIImage *image1 = [UIImage imageNamed:@"a1.png"];
UIImage *image2 = [UIImage imageNamed:@"a7.png"];
UIImage *image3 = [UIImage imageNamed:@"a8.png"];
UIImage *image4 = [UIImage imageNamed:@"a3.png"];
UIImage *image5 = [UIImage imageNamed:@"a6.png"];
UIImage *image6 = [UIImage imageNamed:@"a2.png"];
UIImage *image7 = [UIImage imageNamed:@"a5.png"];
UIImage *image8 = [UIImage imageNamed:@"a9.png"];


NSArray *images = [[NSArray alloc] initWithObjects:image1,image2,image3,image4,image5,image6,image7,image8,nil];


 numberOfViews = 8;
for (int i = 0; i < numberOfViews; i++) {

      [scroll setContentOffset:CGPointMake(numberOfViews * 31,0) animated:YES];
}

上面的代码我只是在尝试。单击按钮时,只有一个图像在移动。我该怎么办。有人帮我。

你在用故事板吗?如果我理解你的要求。我想说的是,创建一个名为say displayImage的uiimageview,以及两个按钮都可以访问的int count=0。让它在应用程序启动时在图像[0]处加载图像。然后,单击右按钮时,如果其为=0,则具有int count+1。然后将图像[计数]加载到displayImage。然后对所有八张图片都这样做。如果您不明白,请告诉我,我可以帮您完成代码。

试试这个

取全局整数

在leftbutton方法中,写入i-

在rightbutton方法中,写入i++

if(i<0){

     i = 0;

   yourImageView.image = [UIImage imageNamed:[yourImagesArray objectAtIndex:i]];
}
else if(i>yourImagesArray.count)
{
       i = youImagesArray.count;

    yourImageView.image = [UIImage imageNamed:[yourImagesArray objectAtIndex:i]];

}
 else 
 {
    yourImageView.image = [UIImage imageNamed:[yourImagesArray objectAtIndex:i]];

 }

将属性添加到视图控件:

@property (nonatomic, strong) UIScrollView *sv;
然后在viewDidLoad中,下面的代码创建一个滚动视图并向其中添加9个图像,如示例中所示。它还在滚动视图下方添加两个按钮,以转到上一个/下一个图像:

CGFloat width = 290;
CGFloat height = 290;
NSInteger imageCount = 9;

self.sv = [[UIScrollView alloc] initWithFrame:CGRectMake(10, 10, width, height)];
self.sv.backgroundColor = [UIColor redColor];
self.sv.pagingEnabled = YES;
self.sv.contentSize = CGSizeMake(width*imageCount, height);
[self.view addSubview:self.sv];

for (int i = 1; i <= imageCount; i++) {
    UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"a%d.png", i]]];
    imgView.backgroundColor = [UIColor blueColor];
    CGRect iFrame = imgView.frame;
    iFrame.origin.x = i * width;
    iFrame.origin.y = 0;
    iFrame.size.width = self.sv.frame.size.width;
    iFrame.size.height = self.sv.frame.size.height;
    imgView.frame = iFrame;
    [self.sv addSubview:imgView];
}


UIButton *previous = [UIButton buttonWithType:UIButtonTypeSystem];
[previous setTitle:@"Previous" forState:UIControlStateNormal];
[previous addTarget:self action:@selector(previousImage:) forControlEvents:UIControlEventTouchUpInside];
[previous sizeToFit];
CGRect pFrame = previous.frame;
pFrame.origin.x = self.sv.frame.origin.x;
pFrame.origin.y = self.sv.frame.origin.y + self.sv.frame.size.height + 10;
previous.frame = pFrame;

UIButton *next = [UIButton buttonWithType:UIButtonTypeSystem];
[next setTitle:@"Next" forState:UIControlStateNormal];
[next addTarget:self action:@selector(nextImage:) forControlEvents:UIControlEventTouchUpInside];
[next sizeToFit];
CGRect nFrame = next.frame;
nFrame.origin.x = self.sv.frame.origin.x + self.sv.frame.size.width - nFrame.size.width;
nFrame.origin.y = self.sv.frame.origin.y + self.sv.frame.size.height + 10;
next.frame = nFrame;

[self.view addSubview:previous];
[self.view addSubview:next];
然后添加以下方法使按钮执行某些操作:

- (void)nextImage:(UIButton *)sender {
    CGPoint p = self.sv.contentOffset;
    if (p.x + self.sv.frame.size.width <= self.sv.contentSize.width) {
        p.x += self.sv.frame.size.width;
        self.sv.contentOffset = p;
    }

}

- (void)previousImage:(UIButton *)sender {
    CGPoint p = self.sv.contentOffset;
    if (p.x - self.sv.frame.size.width >= 0) {
        p.x -= self.sv.frame.size.width;
        self.sv.contentOffset = p;
    }

}

我不使用故事板。请你帮我编码。我只是想试试上面的代码。你可以帮助我在正确的方式编码。如果下面的不工作Lmk我只是美孚现在抱歉