gpt4 book ai didi

ios - ios中图片的 ScrollView

转载 作者:行者123 更新时间:2023-11-29 02:58:23 25 4
gpt4 key购买 nike

您好,我的要求是在 scrollview 中显示图像,同时它应该显示 nextprevious 按钮。用户也可以滚动图像就像使用按钮移动图像一样。

我对如何获取 index/tag/imagename 或用户基于该值按钮滚动时的任何其他内容有疑问已更新。

这是我的代码

[self arrayInitiaisation];  
scrollview.pagingEnabled = YES;
scrollview.alwaysBounceVertical = NO;
scrollview.alwaysBounceHorizontal = YES;
NSInteger numberOfViews = 4;

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

CGFloat xOrigin = i*320;
imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"image%d",i+1]];
imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.scrollview addSubview:imageView];
imageView.tag = i;
...

数组初始化方法

-(void) arrayInitialisation {

count=0;
[super viewDidLoad];
images=[NSMutableArray arrayWithObjects : [UIImage imageNamed:@"image1.png"],
[UIImage imageNamed :@"image2.png"],
[UIImage imageNamed :@"image3.png"],
[UIImage imageNamed :@"image4.png"],nil];
[imageView setImage:[images objectAtIndex:0]];
NSLog(@"Array Length :%d",images.count);
[previous setEnabled:NO];
}

行动方法

- (IBAction)nextButton:(id)sender {}
- (IBAction)prevButton:(id)sender {}

滚动工作正常,但当用户点击 prevnext 时,图像不会在“imageview”上更新

这是我更新后的代码

    int count=0;

- (void)viewDidLoad
{
[super viewDidLoad];
[self arrayInitialisation];
[scrollview setScrollEnabled:YES];
self.scrollview =[[UIScrollView alloc] initWithFrame:CGRectMake(30 , 30, 320, 412)];
self.scrollview.delegate=self;
scrollview.pagingEnabled = YES;
scrollview.alwaysBounceVertical=NO;
scrollview.alwaysBounceHorizontal=YES;
scrollview.showsHorizontalScrollIndicator=NO;
NSInteger numberOfViews = 4;
for (int i = 0; i < numberOfViews; i++) {
CGFloat xOrigin = i*320;
imageView = [[UIImageView alloc]initWithFrame:CGRectMake(xOrigin, 0, 320, 412)];
imageView.image = [images objectAtIndex:i];
imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.scrollview addSubview:imageView];
imageView.tag=i;


}

scrollview.contentSize = CGSizeMake(320*numberOfViews, 412);
scrollview.contentOffset = CGPointMake(0,0);
[self.view addSubview:self.scrollview];
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
-(void) arrayInitialisation{
count=0;
[super viewDidLoad];
images=[NSArray arrayWithObjects : [UIImage imageNamed:@"image1.png"],
[UIImage imageNamed :@"image2.png"],
[UIImage imageNamed :@"image3.png"],
[UIImage imageNamed :@"image4.png"],nil];
[imageView setImage:[images objectAtIndex:0]];
NSLog(@"Array Length :%d",images.count);
[previous setEnabled:NO];
}


- (IBAction)nextButton:(id)sender {
if(count==0){
count++;
NSLog(@"Next Button : if Loop %d",count);
[imageView setImage:[images objectAtIndex:count]];
[previous setEnabled:YES];

}
else{

[previous setEnabled:YES];
count++;
NSLog(@"Next Button : else Loop %d",count);
if(count <images.count){
[imageView setImage:[images objectAtIndex:count]];
}
else{
[next setEnabled:NO];

}
}

}

- (IBAction)prevButton:(id)sender {
if(count==0){
//count--;
NSLog(@"prev Button : if Loop %d",count);
[imageView setImage:[images objectAtIndex:count]];
[previous setEnabled:NO];
[next setEnabled:YES];
}
else{
count--;
NSLog(@"prev Button : else Loop %d",count);
[imageView setImage:[images objectAtIndex:count]];
[previous setEnabled:YES];
//[next setEnabled:YES];
}
}
#pragma mark - ScrollView Delegate

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate: (BOOL)decelerate{
//NSLog(@"scrollViewDidEndDragging");
/* count=count+1;
NSLog(@"scrollViewDidEndDragging : %d",count);*/
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
//NSLog(@"scrollViewDidScroll");

}
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0){
//NSLog(@"scrollViewWillEndDragging");
count=count+1;
NSLog(@"scrollViewWillEndDragging : %d",count);

}

最佳答案

我有用于滚动图像的左右按钮,并且 imageview 宽度相同。

我正在编写按下按钮时滚动图像的代码。

int pos=0;//ViewDiaLoad

- (IBAction)OnClickLeftButton:(UIButton*)sender
{
if(pos>0)
{
pos -=1;
[scrlDemandMenu scrollRectToVisible:CGRectMake(pos*scrlDemandMenu.frame.size.width, 0, scrlDemandMenu.frame.size.width, scrlDemandMenu.frame.size.height) animated:YES];

}
}

- (IBAction)OnClickRightButton:(UIButton*)sender
{
if(pos<numberOfImages)
{
pos +=1;
[scrlDemandMenu scrollRectToVisible:CGRectMake(pos*scrlDemandMenu.frame.size.width, 0, scrlDemandMenu.frame.size.width, scrlDemandMenu.frame.size.height) animated:YES];
}
}

设置 ScrollView 委托(delegate)

ScrollView 委托(delegate)方法

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
pos=scrollView.contentOffset.x/scrollView.frame.size.width;
}

关于ios - ios中图片的 ScrollView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23602729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com