我正在尝试使用新的iOS7 MKMapSnapshotter来生成静态地图图像.每当我的应用需要地图时,我都会调用以下内容:
MKMapSnapshotter *snapshotter = [[[MKMapSnapshotter alloc] initWithOptions:theOptions] autorelease];
dispatch_queue_t aQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
DebugLog(@"Snapshotter allocated %@ and run on queue %@", snapshotter, aQueue);
[snapshotter startWithQueue:aQueue completionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
DebugLog(@"Snapshotter completion block %@", snapshotter);
// perform selector on main thread to set self.imageView.image = shanpshot.image;
}
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,这很有效.但有时,似乎设备因地图请求而过载,然后停止渲染.在我的日志文件中,我将看到关于"已分配的Snapshotter"的第一个日志语句,但从未看到"Snapshotter完成块"消息.
是否有可能我的请求永远不会从调度队列中执行?有没有人遇到过这个问题?
在 UITableViewCell 上设置accessibilityElements后,IOS UITableView可访问性顺序错误
我有一个大而复杂的 UITableView,其中有许多不同类型的自定义 UITableViewCell。如果我不对代码进行任何特殊的可访问性更改,表格将依次读取屏幕上的所有单元格,并正确滚动,以便继续读取,直到读取整个表格。但是,在某些单元格中,子视图未按正确的顺序读取。为了解决这个问题,我在 UITableViewCell 上设置了isAccessibilityElement = false和accessibilityElements = [my subviews in the correct order]。当我这样做时,桌子开始在画外音模式下表现得很疯狂。
有时它会在特定单元格之后停止,并且不会继续到屏幕上的其他单元格。
有时它会从读取索引 20 处的单元格跳转到读取索引 5 处的单元格。
有时,它会到达屏幕上可见的最后一个单元格(还有更多单元格可供滚动),并会跳出表格以读取表格滚动条的“垂直滚动条”,然后不再继续表格内容。
同样,我所做的一切都是在我的 UITableViewCell 子类中:
isAccessibilityElement = false
accessibilityElements = [my subviews in the correct order]
Run Code Online (Sandbox Code Playgroud) 我的应用程序有一个 UIViewController,其中包含一个填充整个屏幕的容器视图。容器视图嵌入了一个 UICollectionViewController。这些视图控制器应该在状态栏下方滚动并显示出来。为了实现这一点,我设置了 UICollectionViewController.contentInsetAdjustmentBehavior = .never。当我滚动 collectionview 并且单元格顶部在状态栏下方滚动时,单元格的内容会缩小。这是不正确的。我只是想让它们像在 iOS 10.3 中一样在状态栏下滚动。
我开发了一个小型测试应用程序来展示我的错误并将其作为错误报告上传。它看起来如此破碎,我无法想象其他人如何没有看到同样的问题。
这里的小测试项目:https : //github.com/murthyveda2000/ios11bug