1

imageViewクラスUIImageViewとボタンのクラス変数があります。画像の配列は、Assets を使用してギャラリーから読み込まれます。すべての画像の読み込みが完了したら、最初の画像を表示します。

 - (void)showImage
{

if ([images count] > 0)
    [self.imageView setImage:[images objectAtIndex:0]];
currentPage = 0;
    }

ここまではすべて順調で、

しかし、次のアクションでボタンをタップすると:

- (IBAction)buttonNext:(id)sender {

 NSLog(@"images array   %@", images );
if (currentPage <   [images count]-1)
  {
   NSLog(@"next currentPage %d %d %@",currentPage, [images count],[images objectAtIndex:currentPage])
    currentPage++;
    [self.imageView setImage:[images objectAtIndex:currentPage]];
  }
}

画像の置き換えは行われません。imageView前の画像を貼り付けます。画像の配列をデバッグしました:

 images array   (
  "<UIImage: 0xb38cec0>",
  "<UIImage: 0xb0f8280>",
  "<UIImage: 0xb063360>",
  "<UIImage: 0xb0660a0>"
)

編集 画像をロードするコード:

-(void)loadImage:(NSString*)url
{
  ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init];

  ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
  {


    ALAssetRepresentation *rep = [myasset defaultRepresentation];
    CGImageRef iref = [rep fullResolutionImage];
    if (iref) {
        UIImage *largeImage = [UIImage imageWithCGImage:iref];
        CGSize size=CGSizeMake(400, 500);//set the width and height
        UIGraphicsBeginImageContext(size);
        [largeImage drawInRect:CGRectMake(0,0,size.width,size.height)];
         UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

        //here is the scaled image which has been changed to the size specified
        UIGraphicsEndImageContext();
        [images addObject:newImage];

        if  ([images count] == [pages count])
            [self showImage];

    }
};

ALAssetsLibraryAccessFailureBlock failureblock  = ^(NSError *myerror)
{
    NSLog(@"Can't get image - %@",[myerror localizedDescription]);
};

NSURL *asseturl = [NSURL URLWithString:url];


 [assetslibrary assetForURL:asseturl
                resultBlock:resultblock
               failureBlock:failureblock];

}
- (void)viewWillAppear:(BOOL)animated

for(NSDictionary* a in pages)
    {
        if ([a objectForKey:@"iospath"] != nil)
            [self loadImage:[document objectForKey:@"iospath"]];
    }

pagesviewDidLoad にロードされた配列です。画像はそこにあります。見せられないのはなぜ?よろしく

4

0 に答える 0