0

誰かがここで私を助けてくれることを願っています。他に何をすべきかわかりません。44 個の画像のセットを読み込む UIScrollView があり、ユーザーはそれらをページングできます。私のコードは機能していましたが、突然停止しました。何を変更したのかわからないので、どんな助けでも大歓迎です:

前のビューは UITableView で、選択されたセルの名前とともに文字列を渡します。ScrollView の ViewDidLoad メソッドは次のとおりです。

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Answer"
                                                                    style:UIBarButtonItemStyleBordered
                                                                   target:self
                                                                   action:@selector(answerPressed:)];

    self.navigationItem.rightBarButtonItem = rightButton;

    if([questionSetName isEqualToString:@"Limitations"]){

        [self limitationsView];
    }
}

制限ビューは次のとおりです。

-(void)limitationsView{

    UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, -44, self.view.frame.size.width, self.view.frame.size.height)];

    scroll.pagingEnabled = YES;

    NSArray *unsortedArray = [[NSBundle mainBundle] pathsForResourcesOfType:@"png" inDirectory:@"Images/Limitations"];

    NSMutableArray *limitationImages = [[NSMutableArray alloc] init];

    for (int x = 0; x<[unsortedArray count]; x++) {

        NSString *fileName = [[unsortedArray objectAtIndex:x] lastPathComponent];

        [limitationImages insertObject:fileName atIndex:x];
    }

    NSArray *sortedArray = [limitationImages sortedArrayUsingFunction:finderSortWithLocal
                                                              context:(__bridge void *)([NSLocale currentLocale])];

    for(int i = 0; i< [sortedArray count]; i++){

        CGFloat xOrigin = i * self.view.bounds.size.width;

        UIImageView *limitationImageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];;

        [limitationImageView setImage:[UIImage imageNamed:[sortedArray objectAtIndex:i]]];

        limitationImageView.contentMode = UIViewContentModeScaleAspectFit;

        [scroll addSubview:limitationImageView];

    }

    scroll.contentSize = CGSizeMake(self.view.frame.size.width * [sortedArray count], self.view.frame.size.height);

    [self.view addSubview:scroll];


}

LimitationsView メソッドの最後に到達すると、sortedArray には 44 個すべての画像と適切な名前が含まれます。スクロールビューの背景色を設定しようとすると、正常に実行できます。しかし、私の画像がロードされず、なぜ途方に暮れていますか?

4

1 に答える 1

1

使用することをお勧めします

NSLog(@"image:%@",[UIImage imageNamed:[limitationsArray objectAtIndex:i]]); 

その時点で画像が null かどうかを確認します。その場合、その配列に格納している文字列に問題があります。つまり、画像の実際の名前と同一ではありません。

于 2012-10-10T16:45:06.380 に答える