Я достиг точки гарнитуры, пытаясь динамически создавать UIImageView в iOS 4.2.Динамически созданный UIImageViews на iPhone не отображается
Это код, который вызывает у меня проблемы:
1) Установка
UIImageView *iview = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 95, 149)];
iview.tag = 200; // see note 1
iview.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[self.view addSubview:iview];
[iview release];
Я попытался с обоих отпуская и не отпуская IView.
2) Отдача
NSString *img = ...[see note 2];
NSLog(@"Filename: %@", img);
UIImageView *pIV = (UIImageView *)[self.view viewWithTag:200];
if (pIV == nil) {
abort();
}
UIImage *pI = [UIImage imageWithContentsOfFile:img];
if (pI == nil) {
abort();
}
[pIV setImage:pI];
Это расширяется, чтобы показать, что я смотрю на, так немногословен версия не работает для меня.
Примечание 1: Большинство указанных выше жестко заданных значений (200, рамки фрейма и т. Д.) Либо #defines, либо вычисляются в forloop, в котором находится код распределения iview. Оставшись для краткости, но дайте мне знать, если вы считаете, что это уместно.
Примечание 2: Это просто сообщение, которое возвращает FilePath после просмотра в NSBundle и т.д. Выход NSLog является
2011-01-30 22: 09: 54,767 Ribbit [13529: 207] Имя файла:/Пользователи/Поддержка рип/Library/Application/iPhone Simulator/4.2/Применения/C421AA9F-45BB-41AB-8CB0-1540FABB56D3/ribbit.app/cardfront_a7.png
.png существует, и оба часовые не ноль (поэтому не происходит ни прерывания()).
Я убежден, что это просто что-то основное.
Вещи, которые я пробовал:
1) Используется IB для создания UIImageView. Когда он был правильно подключен, я мог видеть рамку, и изображение, которое было задано по умолчанию в IB, показало. Я все еще не мог изменить изображение, поэтому я начал динамически создавать их ... думал, что это будет проще. Эх.
2) Пробовал использовать переменные экземпляра для различных iviews, но это было громоздко (их генерируют десять из этих UIImageView), и они тоже не работали.
Поскольку все три попытки потерпели неудачу с одинаковым поведением (отлично работает, просто не видно изображений), я предполагаю, что это просто какая-то глупость.
Я приветствую любые предложения, которые у вас могут быть.
Добро пожаловать в StackOverflow! Престижность для хорошо написанного вопроса. Вернитесь и выберите правильный ответ, когда система позволяет вам. – Moshe