Xamarin.iOS UIAlertView에 이미지를 함께 표시하기

Xamarin.iOS UIAlertView에 이미지를 함께 표시하기

오늘은 Xamarin.iOS의 경고창(UIAlertView)에 이미지를 함께 띄우는 방법을 공유하겠습니다. iOS 개발 문서를 읽어보고, 구글링을 한참하여 결국 제가 Xamarin.iOS에서 해냈습니다.

핵심은 UIAlertView에 accessaryView로서 UIImageView의 인스턴스를 설정하는 것입니다. 더 간단한 방법 아시면 제게 공유해 주세요!

alertView.SetValueForKey (NSObject.FromObject (imageView), 
    new NSString ("accessoryView"));

이 방법을 통해 아래와 같은 경고창을 띄우실 수 있습니다.

아래 소스를 한번 보시면, 전반적인 흐름이 이해가 되실 것입니다.

// UIImage 준비, data는 어디선가 왔다고 가정하고
var image = UIImage.LoadFromData (data); 

// UIImageView 준비
var imageView = new UIImageView () {
    Image = image,
    Frame = new CGRect (0, 0, 
        image.Size.Width, 
        image.Size.Height)
};

// UIAlertView 준비
UIAlertView alertView = new UIAlertView ("확인",
    "이 이미지로 하시겠습니까?",
    null,					                           
    "취소",
    "확인");

// UIAlertView에 UIImageView 장착                                  
alertView.SetValueForKey (NSObject.FromObject (imageView), 
    new NSString ("accessoryView"));

alertView.Clicked += (object sender, UIButtonEventArgs e) => {
  if (e.ButtonIndex == 0) // 취소
    return;

  // 확인 눌렀을 때 수행할 코드
};
alertView.Show ();

즐코딩하세요!