问题标签 [photokit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 仅获取 PHCollectionList 中的专辑
APHCollectionList
是可以包含任意数量的专辑和/或文件夹的文件夹。我目前正在通过 获取列表中的集合PHCollection.fetchCollectionsInCollectionList(list, options: nil)
。
这可能会返回PHAssetCollection
或类型的对象PHCollectionList
。我只对知道PHAssetCollection
该列表中的 s 感兴趣。文档声明您可以使用 fetch 选项应用过滤谓词以返回数据的子集,但我不知道如何使用它来仅获取专辑。您如何使用PHFetchOptions
才能PHAssetCollection
在给定的情况下仅返回 s PHCollectionList
?
ios - 过滤 CLLocationCoordinate2d 半径内的 PHAssetCollections
我正在使用 Photos 框架(又名PhotoKit
)。在我的应用程序中,我需要收集 Moments(类型为PHAssetCollection
)。PHAssetCollection
有一个属性CLLocation *approximateLocation
。
但是NSPredicate
,当我从 PhotoKit 检索 Moments 时,我无法正常工作。
调试器将停止
出现错误:
*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“获取选项中不支持的谓词:近似位置.coordinate.latitude < 37”
这看起来很奇怪,因为我可以用orNSPredicate
来过滤。startDate
endDate
无论如何,接下来我想我会尝试NSPredicate
with 块:
调试器再次停在
带有不同的错误消息:
*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“获取选项中不支持的谓词:BLOCKPREDICATE(0x27d338)”
最后,我记得在CloudKit 文档中看到他们添加了对按距离过滤的新支持。然而,这是为了CKQuery
,不是NSPredicate
。无论如何,我决定试一试。我使用我的坐标进行CLLocation
then 调用:
你猜对了。错误:
同时,我将遍历列表PHAssetCollections
并手动计算它是否在CLLocation
. 这将大大降低效率。
objective-c - 在 Mac OS X 上以编程方式访问照片库:PhotoKit / Photos Framework for Mac
在 Objective-C 中,有一个照片框架又名 PhotoKit,它使 iOS 开发人员能够访问 iPhone 和 iPad 上的照片库,并检索图片/视频及其元数据。
Mac 开发人员将如何执行类似的任务?看来 PhotoKit 仅在 iOS 8.0 中可用。是否有相当于 Mac OS X 的照片框架?
ios - 在 iOS 照片库/库中编辑 Exif 数据而不创建另一个副本
有没有办法编辑/修改作为 iPhone 上 iOS 照片库/画廊一部分的照片的 exif 数据。每当我尝试这样做时,iOS 都会尝试将其保存为单独的图像文件。但是,我想修改 exif 数据,而不创建照片的另一个副本。我使用了下面链接中提到的 libexif,但是 libexif 允许您读取和修改数据,但我无法找到存储在同一个文件中的方法。IOS 中的图库 API(ALAsset、PhotoKit)似乎不提供对底层物理文件的直接访问。它们仅提供可以访问/更新或插入图像内容的 API。他们似乎没有修改 exif 数据的 api。此外,libexif 似乎适用于原始文件名路径。有没有办法使用 PhotoKit 或 ALAsset 获取原始文件名?
我错过了什么吗?任何帮助或指示将不胜感激。
ios - 无法编辑屏幕截图,performChanges 块失败
我正在开发一个允许用户使用 PhotoKit 编辑照片的应用程序。我之前将编辑后的照片以 JPEG 格式保存到磁盘。我想避免转换为 JPEG,并为此进行了修改。它适用于使用相机拍摄的照片,但如果您尝试编辑屏幕截图,该PHPhotoLibrary.sharedPhotoLibrary().performChanges
块将失败并记录The operation couldn’t be completed. (Cocoa error -1.)
。我不确定为什么这会导致 performChanges 块失败,我在这里做错了什么?
我创建了一个可供下载的示例应用程序来演示该问题,并且我在下面包含了相关代码。该应用程序会尝试编辑您照片库中的最新照片。如果成功,它将提示访问编辑照片,否则不会发生任何事情,您将看到控制台日志。要重现此问题,请截取屏幕截图,然后运行该应用程序。
当前适用于屏幕截图的代码:
导致截图失败的替换代码:
ios - UITableView 强制 sectionIndex 更新而不调用 reloadData
我正在从一个实例修改我UITableView
的数据源,这工作正常。我不明白的是,除非您使用以下命令重新加载整个部分,否则我无法获取要更新的PHChange
sectionIndex :。UITableView
UITableView
reloadData
还有其他方法可以强制更新右侧的 sectionIndexUITableView
吗?如果我手动调用:sectionIndexTitlesForTableView:
我确认我正在取回新数据,但是右侧的旧 sectionIndex 在视觉上没有变化,这是我需要的。
代码:
ios - Photokit preserve user album list order
Is there any way to preserve the list order a user has arranged all of their albums in the Photos app? I've been trying to fix this all day, and I can't seem to figure out what I'm missing to preserve the order for displaying in my app.
I would like to preserve the order because a user can rearrange their albums in the Photos app, so I want my UI to match the list order.
Code I'm using to set up the list:
ios - 带有位掩码的 NSPredicate 用于过滤 NSArray
我正在尝试使用NSPredicate
. The:testForPhotosPredicate
工作得很好,但是当尝试使用testForPanoramasPredicate
它时它会失败并显示以下消息:Unable to parse the format string "mediaSubtypes & %i"
如何在此谓词中为 mediaSubtypes 使用位掩码?
ios - 如何检测隐私权限更改(例如相机访问)
我们都去过那里。你想在你的应用程序中拍照,或者访问照片、麦克风、联系人等……但首先 iOS 必须提示用户许可。在许多情况下,用户会拒绝访问。
如果您的应用检测到用户拒绝访问,您可以使用以下命令将用户导航到应用的隐私设置:
便利。然而....
我注意到,如果您确实说服用户将开关切换到打开,则该应用程序不会检测到更改。
考虑这段代码。立即提示用户访问相机的权限(这仅显示该应用程序第一次运行)。假设用户拒绝了权限。接下来,他们决定他们确实想要启用相机访问权限。没问题。用户点击弹出隐私面板的按钮。用户更改开关以允许访问。然后用户切换回应用程序。该块触发 UIApplicationDidBecomeActiveNotification 再次读取权限。但是,它不反映用户的更改(仍读作 Denied)。
如果应用程序从内存中清除并再次运行,它将正确读取状态。
并非所有权限都以这种方式运行。例如 CoreLocation 似乎可以检测到用户的更改。我还找到了一种检测通知更改的方法。但是对于通讯录、日历、相机、麦克风、Core Motion(等等),在应用程序终止并再次运行之前不会检测到更改。
有任何想法吗?
ios - 使用 Apple IOS Photokit 对共享相册进行排序
在我做很多徒劳的实验之前,有没有人知道你是否可以使用 Apple Photokit 对共享相册进行排序。我知道本机照片应用程序无法做到。