2013-08-30 8 views
1

Я хочу добавить изображение в мое представление, но изображение не появляется. Что не так с моим кодом? Спасибо за помощь.Xamarin Studio: Добавить UIimageView в UIView

...Constructor(UIImage _pickedImage...... 

UIImageView iv = new UIImageView (this.Bounds); 
iv.Image = this.pickedImage; 
this.AddSubview (iv); 
iv.Release(); 

ответ

1

Вы фрагмент кода довольно короткий, но вы должны не вызов iv.Release();, так как вы будете разбалансировать подсчет ссылок уроженца (ObjC) UIImageView экземпляра.

На самом деле вы не почти никогда не вызывать этот метод себя, так как Xamarin.iOS имеет сборщик мусора (GC), который, при утилизации объекта, автоматически вызывать селектор release (так же, как retain будет сделано, когда создание управляемого экземпляра).

1

Сегодня я столкнулся с этой проблемой и обнаружил, что у этого вопроса нет правильного ответа, как его решить. Так что ради будущих ссылок я объясню, как я это решил.

Я просматриваю список, содержащий изображения, изображенные как item. Во-первых, создать UIImageView

UIImageView imageView = new UIImageView(); 

Тогда я беру байтовый массив изображения, и преобразовать его в UIImage

UIImage image = Utilities.ToImage(item.ImageBytesArray); 

Затем установите UIImageView с UIImage

imageView.Image = image; 

Следующее - это то, что решило главную проблему для меня, а не появилось. Итак, мы собираемся, чтобы получить и сохранить Размер экрана его в screen

var screen = UIScreen.MainScreen.Bounds; 

Установите кадр UIImageView. Это создает UIImageView, который можно увидеть. Мое смещение сверху должно было быть 400, чтобы не перекрывать другой контент.
CGRect(xOffset, yOffset, width, height)

imageView.Frame = new CoreGraphics.CGRect(0, 400, screen.Size.Width, 300); 

Я использую Scrollview, поэтому я добавляю его к этому. Может быть также this

scrollView.Add(imageView); 

UIImageView ImageView = новый UIImageView();
UIImage image = Utilities.ToImage (item.ImageBytesArray);
imageView.Image = image;
var screen = UIScreen.MainScreen.Bounds;
imageView.Frame = новый CoreGraphics.CGRect (0, 400, screen.Size.Width, 300);
scrollView.Add (imageView);

Смежные вопросы