2013-10-18 95 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; 
} 
相關問題