我正在尝试从照片库中提供用户选择的图像.因此我正在UIImagePickerController
选择.但是这里出现了在文件系统中获取其初始URL的问题(我需要这个CKAsset
).
我的代码.
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
let imageURL = info[UIImagePickerControllerReferenceURL] as NSURL
let path = imageURL.path!
let imageName = path.lastPathComponent
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentDirectory = paths.first as String!
let localPath = documentDirectory + "/" + imageName
let imageData = NSData(contentsOfFile: localPath)!
let image = UIImage(data: imageData)!
picker.dismissViewControllerAnimated(true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
imageURL有点神秘.它描述了资产URL,但不是文件系统中的资产URL.它看起来像:assets-library://asset/asset.JPG?id=B6C0A21C-07C3-493D-8B44-3BA4C9981C25&ext=JPG
.
根据该逻辑路径是/asset.JPG
其中asset.JPG
是所述图像的名称.
然后我正在访问我的Documents文件夹并试图找到一个带路径的文件:
/Users/Eugene/Library/Developer/CoreSimulator/Devices/3C5E9A23-8220-4B37-BD14-F1E42EEC2C7C/data/Containers/Data/Application/20EBAAE2-6C6F-4651-A48F-16A222CCB3A2/Documents/asset.JPG
也是隐秘的,但似乎是不存在的图像的真实路径......没有找到具有该路径的图像.这让我感到恶心.
我是否必须从头开始保存图像?或者还有其他方法吗?
我已经使用AssetsLibrary …
我有一个分层应用程序(NavigationController),在根控制器的角色中有一个简单的表视图.每次选择任何单元格时,都会有一个新视图,其中包含有关详细信息的一些信息(由DetailViewController管理).在DetailViewController的视图一侧,我有一个UIWebView来显示来自Internet的数据.但是当我查看内存使用情况时会发生问题.DetailViewController的每个新打开视图及其内容通过UiWebView从Web加载,使用系数带来更多内存.当我回到根控制器的视图时,我想卸载所有内容并释放为该数据分配的内存.
我该如何管理这个问题?我尝试使用stopLoading:
UIWebView的实例方法来节省一些内存,但它也没有解决问题.除了我不完全理解ARC的工作过程,我无法确保自己是否通常使用每个新打开的详细信息视图的系数增加内存.
先感谢您!
在我的项目中有一些我想要实现的特定内容但是为了做到这一点,我可能会动态地更改视图的约束.假设我有一个UIView实例和一个UILabel实例.下图显示了它的外观.(图片有点大,你知道所有iPhone 6; P)
它最初是这样的.但是当出现一个视图时,我会进行计算(以确定是否更改容器的高度)并应用它们.如果需要减少容器(灰色视图)应用程序,最后我们可能会得到像...
我希望它可以完全像我刚才描述的那样工作,但是......它没有.相反,它就像......
因此,容器的高度会发生变化,但即使存在限制条件,下面的标签也位于同一位置.所以我想知道如何根据更新的大小动态更新视图位置.
先感谢您!