簡體   English   中英

UIImageView切換setContentMode隨機EXEC_BAD_ACCESS

[英]UIImageView switching setContentMode random EXEC_BAD_ACCESS

我在UIViewController中使用UIImageView和UIScrollView來顯示圖像。 工具欄上的“實際大小”和“適合屏幕大小”選項可讓用戶在模式之間切換。 在兩種模式之間切換時,我隨機得到EXEC_BAD_ACCESS錯誤。 隨機意味着我可以切換到“實際大小”模式以適應屏幕模式。 當我碰到其中之一時,應用程序崩潰。

這是我正在使用的代碼,如果它無法幫助我可以發布h和m文件。

        -(void)loadImage{

     NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
     NSString *filePath = [documentsDirectory stringByAppendingPathComponent:imgFilePath];

     imageView.image = [UIImage imageWithData: [NSData dataWithContentsOfFile:filePath]];

     imgLoaded = 1;

    }


    -(void)FitToScreen{

     if(imgLoaded<1) [self loadImage];

     if(currentState != STATE_IMGPLAYER_FULLSCREEN ){
      currentState = STATE_IMGPLAYER_FULLSCREEN;
     //[imageView setContentMode:UIViewContentModeCenter];
      [imageView setContentMode:UIViewContentModeScaleToFill];
      CGSize photoSize = imageView.frame.size;
      [scrollView setContentSize:photoSize];
     }
     // 

    }


    -(void)ActualSize{


     if(currentState != STATE_IMGPLAYER_ACTUAL_SIZE){

      currentState = STATE_IMGPLAYER_ACTUAL_SIZE;

      [imageView setContentMode:UIViewContentModeTopLeft];
      [scrollView setContentMode:UIViewContentModeCenter];

      CGSize photoSize = [imageView.image size];

      [scrollView setContentSize:photoSize];

     }

    }

-(IBAction)info_clicked:(id)sender 
{
 UIButton *button = (UIButton *)sender;


 if ([button tag] == BTN_FIT2SIZE) {

  [Button setEnabled:NO];
  [Button2 setEnabled:YES];

  [self ActualSize];

 } else if ([button tag] == BTN_FIT2SCREEN) {

  [Button setEnabled:YES];
  [Button2 setEnabled:NO];
  [self FitToScreen];

 }

 [button release];
}

控制台消息:

Program received signal:  “EXC_BAD_ACCESS”.

謝謝你的幫助。

初步的猜測是您可能沒有保留imageView或其圖像? 如果您可以發布堆棧跟蹤以及崩潰的行,它將很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM