0

たとえば、単純な画像ビューのようにビュー間をスクロールできるようにしたいスクローラーがあります。ここにそれらを設定しました:

    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

これらのビューをスクローラー内に配置するにはどうすればよいですか? ありがとうございました!

4

5 に答える 5

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

する必要があります

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

UIImageViewあなたはオブジェクトをあるべきものに渡していましたNSString

于 2013-10-18T05:19:07.693 に答える
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に設定することも検討してください。

これがあなたを助けることを願っています。

于 2013-10-18T05:20:29.760 に答える
0

UIImageView問題は、imageNamed代わりににを渡していることですNSString

この行:

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

次のようにする必要があります。

UIImageView *imageView = [arrImageName objectAtIndex:i];
[ImgView setImage:imageView.image];
于 2013-10-18T05:20:33.413 に答える
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;
}
于 2013-10-18T05:28:47.463 に答える