我知道我错过了什么,因为这必须是一件容易实现的事情.
我的问题是我在我的"加载屏幕"(飞溅后出现的那个)UIImageView有两个不同的图像,用于3.5英寸和4英寸大小的屏幕.在该图像的某个位置,我放置了一个UIActivityIndicator,告诉用户应用程序正在后台加载某些内容.两个图像的位置不一样,因为其中一个明显高于另一个,所以我想设置一个autolayout约束,允许我将该活动指示器放在不同的高度,取决于应用程序是否在运行iPhone 5与否.
没有Autolayout,我将视图的frame.origin.y设置为300(例如),然后在ViewController的viewDidLoad方法中,我会问应用程序是否在iPhone 5中运行,所以我' d将值更改为,例如,350.我不知道如何使用Autolayout执行此操作,我认为它必须非常简单.
我正在一个应用程序中工作,在该应用程序中,我可以使用 AVPlayer 实例播放流媒体广播(仅限音频)的 HLS m3u8 播放列表而没有任何问题。使用 Charles 我可以看到播放列表是如何以正常速度正确更新的(每 9-10 秒,这需要一个媒体片段文件)。当我执行seekToTime:(回到过去)时,播放器从我想要的时候开始成功播放流,但在Charles中我观察到播放器如何开始下载大量媒体片段文件,消耗大量数据。似乎播放器下载所有媒体段文件直到那个时候,然后再次保持正常行为。
我知道正确的行为是在我想要的时间下载媒体片段文件,开始播放它,然后每 9-10 秒不断下载 1 或 2 个媒体片段文件,就像我播放流时一样没有时移。
我的问题是这是否是正常行为,或者我的 m3u8 播放列表或客户端实现是否有问题。任何人都可以帮我澄清这一点吗?
更新:我可以确认这不会发生在 iOS 7 中,所以它似乎是 iOS 8 引入的错误。
在 Mac OS X 应用程序 (Cocoa) 中,我使用NSDraggingSession. 它NSDraggingItem利用实现协议的对象NSPasteboardItemDataProvider,在用户删除数据时提供数据。
当我处理图像时,涉及的类型是:NSPasteboardTypePNG、kPasteboardTypeFileURLPromise、kUTTypeFileURL和。这些图像位于远程位置,因此在将它们提供到粘贴板之前,我必须从 Internet 下载它们。com.adobe.photoshop-imagepublic.svg-image
我实现的方法- pasteboard(pasteboard:item:provideDataForType:)是这样的:
如果请求的类型是kPasteboardTypeFileURLPromise,我会获取粘贴位置并在粘贴板中构建和设置 URL 字符串以及将来应该写入文件的位置。
如果请求的类型是kUTTypeFileURL,我会下载该文件,指定临时位置并将下载的文件写入该位置。然后,我在粘贴板中设置该位置的 URL 字符串。
如果请求的类型是其他类型之一,我会下载该文件并NSData在粘贴板中设置纯文本。
所有这些操作都是在主线程上执行的,产生了一些我想消除的滞后。
我尝试在后台线程上执行这些操作,然后返回主线程以在粘贴板中设置最终数据,但这不起作用,因为该方法之前已完成。
有谁知道如何实现它?
在我的 tvOS 应用程序中,我有一个集合视图,我已将其设置remembersLastFocusedIndexPath为true. 由于这不足以获得这种行为,我还重写了我的方法,UIViewController如下所示:
override weak var preferredFocusedView: UIView? {
return collectionView
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,直到我由于某些原因开始重新加载集合视图。如果集合视图可见,我调用collectionView.reloadData().
不过,如果我在集合视图不可见时重新加载,例如,当我在点击其中一项后处于详细视图中时,这将不起作用。当我回到网格时,聚焦的索引路径不是我点击的路径。
作为解决方法,我正在管理这种不理想的情况:
collectionView.reloadData()在集合视图可见时调用(因为我知道最后一个聚焦索引在这里不会更改)。collectionView.reloadData()是viewDidAppear(animated: Bool)为了在用户回来时提供最新的内容。我怎样才能正确地做到这一点?提前致谢。
ios ×3
autolayout ×1
avplayer ×1
avplayeritem ×1
cocoa ×1
ios6 ×1
iphone ×1
macos ×1
nspasteboard ×1
seektotime ×1
tvos ×1
uikit ×1