小编Mic*_*nes的帖子

如何使用ALAsset获得图像的裁剪版本?

我正在尝试使用ALAsset获取图像的裁剪版本.具体来说,我正在从用户的照片库中选择项目,然后上传它们.问题是在库缩略图视图中,iOS向我们显示了裁剪版本.当您选择该缩略图并使用ALAsset拉取该图像的资源时,我会获得完整的分辨率版本.我做了一些研究,找不到任何有助于获得裁剪发生位置的第二个坐标系的东西.

要测试它,您需要iOS5来编辑库中的图像.在图像库中选择图像,选择"编辑",然后裁剪图像.当您获得ALAsset时,您将获得完整的图像,如果您使用iPhoto进行同步,iPhoto也会获取完整的图像.此外,您可以重新编辑图像并撤消裁剪.

这就是我得到图像的方式:

UIImage *tmpImage = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]];
Run Code Online (Sandbox Code Playgroud)

这显然给了我全分辨率图像.有一个fullScreenImage标志,可以将全分辨率图像缩放到屏幕大小.那不是我想要的.

ALAssetRepresenation类有一个scale字段,但这是一个浮点值,这也是我不想要的.

如果有人能告诉我这个裁剪坐标系的位置,我会很感激.

iphone ios

13
推荐指数
2
解决办法
3699
查看次数

按下后退按钮时UINavigationController不弹出视图,但导航栏动画

我正在创建一个非常简单的示例应用程序,以显示首选项如何与我正在使用的新应用程序一起使用.这个过程非常简单:在IB中创建一个UINavigationController,为它分配视图控制器,它将成为根视图控制器,并在调用didSelectRowAtIndexPath时将新的视图控制器推送到导航控制器的堆栈上.

我已经阅读了尽可能多的相关主题,但我找不到满意的答案.

问题是,当按下后退按钮时,导航控制器会向后设置动画,但视图本身不会改回,这意味着它不会弹出.

这是我用来将新视图控制器推送到堆栈的代码.这是非常标准的.我添加了NSLog以确保它只被击中一次.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.section != 0)
    return;

NSLog(@"didSelectRowAtIndexPath\n");

PrefsListTableViewController *prefsListTableViewController = [[PrefsListTableViewController alloc] initWithNibName:@"PrefsListTableViewController" bundle:nil];

[self.navigationController pushViewController:prefsListTableViewController animated:YES];
[prefsListTableViewController release];
}
Run Code Online (Sandbox Code Playgroud)

要检查是否在第二个视图上点击了viewWillDisappear调用,我将其添加到我的PrefsListTableViewController:

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
NSLog(@"ptvc viewWillDisappear");
}
Run Code Online (Sandbox Code Playgroud)

这永远不会受到打击.

首先,我认为您不需要编写任何代码来处理后退按钮,因为当您按下后退按钮时,UINavigationController会自动弹出堆栈.我可以通过一个示例应用程序来展示我正在做的事情,但样本只是代码.代码来自Erica Sadun的iPhone Developer's Cookbook代码,食谱11-11.她的代码在这里:

https://github.com/erica/iphone-3.0-cookbook-/tree/master/C11-Tables/11-Disclosure%20Chevrons

如果你查看她的代码,就没有.xib文件,所有内容都是在不需要编写后退按钮的情况下处理的.视图控制器被推入代码中,并且看似没有代码而弹出.我更喜欢使用.xib文件,所有内容应该以相同的方式工作,但事实并非如此.

其次,我在NSLog语句中说明实际上,根导航控制器有两个视图控制器.

2011-11-18 11:14:36.355 TableViewTest[58011:207] didSelectRowAtIndexPath
2011-11-18 11:14:36.358 TableViewTest[58011:207] ptvc viewWillAppear (
"<TableViewController: 0x8923d40>",
"<PrefsListTableViewController: 0x8927a20>"
)
2011-11-18 11:14:36.717 TableViewTest[58011:207] ptvc viewDidAppear (
"<TableViewController: 0x8923d40>",
"<PrefsListTableViewController: 0x8927a20>"
)
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到视图控制器按正确顺序推送.

这导致了一个问题:当按下后退按钮时,为什么不会弹出PrefsListTableViewController?如果有人需要更多信息,请告诉我.

iphone uinavigationcontroller

5
推荐指数
1
解决办法
1686
查看次数

标签 统计

iphone ×2

ios ×1

uinavigationcontroller ×1