2013-10-18 62 views
0

我有一个滚动条,我希望能够在视图之间滚动,例如像这样的简单图像视图。我把它们设置在这里:在UIScrollView中滚动视图

UIImageView *settingsView = [[UIImageView alloc] init]; 
    [settingsView setImage:[UIImage imageNamed:@"1.jpg"]]; 

    UIImageView *cameraView = [[UIImageView alloc] init]; 
    [cameraView setImage:[UIImage imageNamed:@"2.jpg"]]; 

接下来我想把这些ImageViews放到我的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

我怎样才能把这些视图的滚动条的内部?谢谢!

回答

0
NSMutableArray *arrImageName =[[NSMutableArray alloc]initWithObjects:settingsView,cameraView,nil]; 

应该

NSMutableArray *arrImageName =[[NSMutableArray alloc]initWithObjects:@:"1.jpg", @"2.jpg",nil]; 

你正经过UIImageView对象进入应该是什么NSString

+0

其实我想通过UIImageView。我知道我需要在下面编辑ImgView,但我怎样才能将这个格式传递给UIImageView而不是只传递图片? – Inovize

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。

希望这会帮助你。

0

问题是你传递一个UIImageViewimageNamed代替NSString

这行:

[ImgView setImage:[UIImage imageNamed:[arrImageName objectAtIndex:i]]]; 

应该是:

UIImageView *imageView = [arrImageName objectAtIndex:i]; 
[ImgView setImage:imageView.image]; 
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; 
} 
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; 
} 
相关问题