由于某些原因,我无法在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
循环(无论如何,它应该总是只返回一个结果),那就太好了。感谢
这是因为您正在使用alloc init创建一个新的图像视图,而不是使用您在IB中创建的图像视图。您应该只删除alloc init行。
为什么分配displayAlbum,而它是IBOutlet?如果它已经在NIB中制作,那么通过分配新的UIImageView,它不应该工作,因为你将拥有完全新的UIImage view,它不是你的视图控制器的一部分。如果它不是在NIB中制作的,那么你应该通过添加作为视图控制器一部分的一些视图的子视图来将它添加到视图控制器中,并为它设置一些框架
首先,试着评论这句话:
displayAlbum=[[UIImageView alloc]init];