2013-11-14 3 views
0

У меня есть приложение для iPad, которое позволяет пользователю делать снимок с помощью UIImagePickerController. Изображение хранится в массиве под названием фотографий, а миниатюра помещается в UITableView, как показано на рисунке.Зная ориентацию UIImage, взятого из UIImagePickerController

enter image description here

Когда пользователь нажимает на миниатюру полное изображение отображается в UIImage называется photoImageView, используя следующий код. Проблема, которую я имею, - это знать, была ли сделана фотография в пейзаже (миниатюры 1 и 3) или портрет (миниатюра 2), чтобы я мог отображать UIImage в правильном вращении.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
photoImageView.image=[photos objectAtIndex:indexPath.row]; 
photoImageView.frame=CGRectMake(190, 134, 700, 448); 
} 

Возможно, мне тоже нужно сохранить ориентацию в массиве - возможно ли это?

Также есть способ центрирования миниатюр в UITableView?

ответ

1

Возьмите size объект UIImage и сравните width и height. Возможно, это и есть другой способ сделать это, но я так и делаю.

Для центрирования изображения в UITableView (при условии, что вы отсылая к imageView собственности UITableViewCell), установите contentMode свойство UIView все, что вы хотите (UIViewContentModeScaleAspectFill обычно делает это).

+0

Отлично спасибо. Однако, похоже, я не могу получить изображение. cell.imageView.contentMode = UIViewContentModeScaleAspectFill; не перемещает миниатюру портрета в центр. Правильно ли я это сделал? – RGriffiths

+0

Рад, что я мог бы вам помочь, спасибо за то, что вы также ответили и приняли ответ. hmmm не уверен в вашей следующей проблеме, но это должно работать. Может быть, подкласс 'UITableViewCell' и добавить собственный' UIImageView' или загрузить его из файла nib (это также считается подклассом). –

2

Вы можете использовать imageOrientation свойство UIImage

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    [picker dismissViewControllerAnimated:YES completion:nil]; 
    self.photo = (UIImage*)[info objectForKey:UIImagePickerControllerOriginalImage]; 

    //self.photo.imageOrientation is the orientation 
} 
Смежные вопросы