2013-08-28 3 views
0

По какой-то причине я не могу получить альбом изображений в свой UIImageView. Он добавляется в раскадровку и заявил:UIImageView не отображает изображения

@property (strong, nonatomic) IBOutlet UIImageView *displayAlbum; 
@synthesize displayAlbum, titleLbl, artist; 

В моем коде:

displayAlbum = [[UIImageView alloc] init]; 

MPMediaPropertyPredicate *predicate = [MPMediaPropertyPredicate predicateWithValue:@"1079287588763212246" forProperty:MPMediaEntityPropertyPersistentID]; 
MPMediaQuery *query = [[MPMediaQuery alloc] init]; 
[query addFilterPredicate: predicate]; 
NSArray *queryResults = [query items]; 

for (MPMediaItem *song in queryResults) { 
MPMediaItemArtwork *artwork = [song valueForProperty: MPMediaItemPropertyArtwork]; 
[displayAlbum setImage: [artwork imageWithSize:CGSizeMake(displayAlbum.frame.size.width, displayAlbum.frame.size.height)]]; 
     } 

Я могу получить другую информацию о песне так что его определенно получают нужную песню, но ImageView всегда показывает пустым.

На стороне примечания, если кто-нибудь может помочь мне очистить вышеприведенный бит кода, особенно избавиться от цикла for (он всегда должен всегда возвращать один результат в любом случае), что было бы здорово. Спасибо

+0

одна глупая вещь ... у вас добавлено изображениеView как subview для супервизора? –

+0

Должен ли я сделать это, даже если я использую IB? Я попробовал '[self.view addSubview: displayAlbum];' не повезло. –

+0

R U уверен, что вы инициализировали UIImageView с помощью некоторой FRAME ...? –

ответ

2

Это потому, что вы создаете новое представление изображения с помощью alloc init, вместо того, чтобы использовать тот, который вы создали в IB. Вы должны просто удалить эту строку инициализации alloc.

+0

Duh .... Я не использовал IB некоторое время и привык делать что-то программно. Благодаря! –

+0

Это не должно иметь значения. В моем случае это не так. Любые другие предложения? – TheJeff

0

Почему вы выбрали displayAlbum, когда это IBOutlet? Если он уже создан в NIB, то, назначив новый, он не должен работать, поскольку у вас будет совершенно новый UIImageView, который не является частью вашего контроллера представлений. Если это не сделано в NIB, вы должны добавить его в свой контроллер просмотра, добавив subview некоторых из ваших представлений, которые являются частью вашего контроллера представлений, и установите для него некоторый кадр.

Сначала попробуйте закомментировать эту строку:

displayAlbum = [[UIImageView Alloc] инициализации];