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我只是美孚现在抱歉