此问题始于iOS7中使用新的UIPickerView控制器。要在UIPickerView控制器中使用图像,必须使用委托方法返回图像:
pickerView:viewForRow:forComponent:reusingView:
问题在于屏幕随后出现各种奇怪的行为 - 当您在控件上下移动手指时,图像视图会消失。
答案 0 :(得分:13)
这是一个发布在开发论坛上的解决方案,该论坛适用于iOS 7.0.2:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
// self.myImages is an array of UIImageView objects
UIView * myView = [self.myImages objectAtIndex:row];
// first convert to a UIImage
UIGraphicsBeginImageContextWithOptions(myView.bounds.size, NO, 0);
[myView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// then convert back to a UIImageView and return it
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
return imageView;
}
答案 1 :(得分:3)
有一种比Ed Trujilo的方法更简单的方法(它假设你使用的是UIImageView,但是......我相信Ed的方法适用于任何UIView)
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
return [[UIImageView alloc] initWithImage: [mpSelections[row] image]];
}