添加的照片不适合UIImageView的框架

时间:2013-10-27 14:27:31

标签: ios objective-c uiimageview photo xcode5

请帮助在UIImageView的框架中添加添加的照片。照片不适合框架。我在“IOS编程:大书呆子牧场指南”第12章“相机”中做了同样的事情。在添加照片之前:https://www.dropbox.com/s/o0uypvspuhvlkm2/Screen%20Shot%202013-10-27%20at%205.08.39%20PM.jpg添加:https://www.dropbox.com/s/u6qffb1l941cb0v/Screen%20Shot%202013-10-27%20at%205.09.02%20PM.jpg之后我为UIImageView尝试了setContentMode - 不起作用。这是我的代码:

#pragma mark UIActionSheetDelegate

- (IBAction)displayActionSheet:(id)sender
{
    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil
                                                             delegate:self
                                                    cancelButtonTitle:@"Cancel"
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:@"Take photo", @"Choose photo from gallery", nil];

    actionSheet.actionSheetStyle = UIActionSheetStyleDefault;
    [actionSheet showInView:self.view];
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    switch (buttonIndex) {
        case 0:
            [self takePhoto];
            break;
        case 1:
            [self choosePhoto];
            break;
    }
}

#pragma mark UIImagePickerControllerDelegate

- (void)takePhoto {
    UIImagePickerController *pickerControllerTakePhoto = [[UIImagePickerController alloc] init];
    [pickerControllerTakePhoto setSourceType:UIImagePickerControllerSourceTypeCamera];
    [pickerControllerTakePhoto setDelegate:self];
    [self presentViewController:pickerControllerTakePhoto animated:YES completion:nil];
}

- (void)choosePhoto {
    UIImagePickerController *pickerControllerChoosePhoto = [[UIImagePickerController alloc] init];
    [pickerControllerChoosePhoto setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    [pickerControllerChoosePhoto setDelegate:self];
    [self presentViewController:pickerControllerChoosePhoto animated:YES completion:nil];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage *myPhoto = [info objectForKey:UIImagePickerControllerOriginalImage];
    [photoView setImage:myPhoto];
    [self dismissViewControllerAnimated:YES completion:NULL];
}

我的'加'或'添加'按钮调用带有对话框的操作表,因此我从图库中选择照片,结果就像在第二个屏幕截图上一样。

2 个答案:

答案 0 :(得分:0)

设置图像视图属性:

imageView.clipsToBounds = YES;
imageView.contentMode = UIViewContentModeScaleAspectFill;

两者都可以在Interface Builder中设置。

答案 1 :(得分:0)

所以我找到了扰乱我的代码行,这完全是因为我为我的tableview提供的自定义单元格:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = nil;
    if (indexPath.row == 0) {
        photoView = (UIImageView *)[photoCell viewWithTag:1]; // this is the first custom cell in my tableview and this line which I put on the model of the book isn't needed
        cell = photoCell;
...............................