我有一个滚动条,我希望能够在视图之间滚动,例如像这样的简单图像视图。我把它们放在这里:
UIImageView *settingsView = [[UIImageView alloc] init];
[settingsView setImage:[UIImage imageNamed:@"1.jpg"]];
UIImageView *cameraView = [[UIImageView alloc] init];
[cameraView setImage:[UIImage imageNamed:@"2.jpg"]];
接下来我想拍摄那些ImageView并将它们放入我的ScrollView数组中。我尝试这样做:
int PageCount = 2;
NSMutableArray *arrImageName =[[NSMutableArray alloc]initWithObjects:settingsView,cameraView,nil];
UIScrollView *scroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroller.scrollEnabled=YES;
scroller.backgroundColor = [UIColor clearColor];
[scroller setShowsHorizontalScrollIndicator:NO];
scroller.pagingEnabled = YES;
scroller.bounces = NO;
scroller.delegate = self;
[self.view addSubview:scroller];
int width=scroller.frame.size.width;
int xPos=0;
for (int i=0; i<PageCount; i++)
{
UIImageView *ImgView = [[UIImageView alloc]initWithFrame:CGRectMake(xPos, 0, scroller.frame.size.width, scroller.frame.size.height)];
[ImgView setImage:[UIImage imageNamed:[arrImageName objectAtIndex:i]]];
[scroller addSubview:ImgView];
scroller.contentSize = CGSizeMake(width, 0);
width +=scroller.frame.size.width;
xPos +=scroller.frame.size.width;
}
我得到的错误是'NSInvalidArgumentException', reason: '-[UIImageView stringByDeletingPathExtension]: unrecognized selector sent to instance
如何将这些View放在滚动条内?谢谢!
答案 0 :(得分:0)
NSMutableArray *arrImageName =[[NSMutableArray alloc]initWithObjects:settingsView,cameraView,nil];
应该是
NSMutableArray *arrImageName =[[NSMutableArray alloc]initWithObjects:@:"1.jpg", @"2.jpg",nil];
您正在将UIImageView
个对象传递到应该NSString
答案 1 :(得分:0)
arrImageName
已准备好imageViews
。
所以这一行错了
[ImgView setImage:[UIImage imageNamed:[arrImageName objectAtIndex:i]]];
您只需将imageviews
添加到scrollview
。
for (int i=0; i<PageCount; i++)
{
[scroller addSubview:[arrImageName objectAtIndex:i]];
scroller.contentSize = CGSizeMake(width, 0);
width +=scroller.frame.size.width;
xPos +=scroller.frame.size.width;
}
并考虑将帧设置为imageViews。
希望这会对您有所帮助。
答案 2 :(得分:0)
问题是您将UIImageView
传递给imageNamed
而不是NSString
这一行:
[ImgView setImage:[UIImage imageNamed:[arrImageName objectAtIndex:i]]];
应该是:
UIImageView *imageView = [arrImageName objectAtIndex:i];
[ImgView setImage:imageView.image];
答案 3 :(得分:0)
int PageCount = 2;
NSMutableArray *arrImageName =[[NSMutableArray alloc]initWithObjects:settingsView,cameraView,nil];
UIScrollView *scroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroller.scrollEnabled=YES;
scroller.backgroundColor = [UIColor clearColor];
[scroller setShowsHorizontalScrollIndicator:NO];
scroller.pagingEnabled = YES;
scroller.bounces = NO;
scroller.delegate = self;
[self.view addSubview:scroller];
int width=scroller.frame.size.width;
int xPos=0;
for (int i=0; i<PageCount; i++)
{
UIImageView *ImgView = [arrImageName objectAtIndex:i];
[ImgView setFrame:CGRectMake(xPos, 0, scroller.frame.size.width, scroller.frame.size.height)];
[scroller addSubview:ImgView];
scroller.contentSize = CGSizeMake(width, 0);
width +=scroller.frame.size.width;
xPos +=scroller.frame.size.width;
}
答案 4 :(得分:0)
for (int i=0; i<PageCount; i++)
{
UIImageView *ImgView = [[UIImageView alloc]init];
ImgView =[arrImageName objectAtIndex:i];
[ImgViewSetFrame:CGRectMake(xPos, 0, scroller.frame.size.width, scroller.frame.size.height)]
[scroller addSubview:ImgView];
scroller.contentSize = CGSizeMake(width, 0);
width +=scroller.frame.size.width;
xPos +=scroller.frame.size.width;
}