小编Pat*_*tar的帖子

NavigationBar中的iOS 11 SearchBar

在iOS 11中,Apple通过使角落更圆,高度更大来重新设计UISearchBar.只需将它设置为navigationItem的titleView,就可以将UISearchBar添加到navigationBar非常简单navigationItem.titleView = searchBar.

但是,在iOS 11中,它似乎不再像预期的那样工作.看看我们使用iOS 10和iOS 11比较相同设置的屏幕

iOS 10 在此输入图像描述

iOS 11 在此输入图像描述

您可以清楚地看到SearchBar增加了NavigationBar的大小,但条形按钮没有正确对齐.此外,searchBar不再使用左侧的可用空间.

将searchBar放入包装器视图以获取iPad上的取消按钮,如此处所述取消按钮未显示在UISearchBar中似乎不再起作用,因为searchBar根本不可见.

如果有人有类似的问题或已经知道如何解决/改善这一点,我将非常感激.

这是使用Xcode 9 Beta 4构建的.也许将来的版本将解决这个问题.

更新:

由于这没有得到修复,我们决定使用以下解决方案.我们向NavBar添加了一个新的UIBarButtonItem,然后它呈现了一个新的ViewController,我们只将一个searchBar放入NavBar,而这似乎没有用.使用所选答案可能是最佳解决方案,因为Apple 11和iOS 11希望我们使用这种新设计,即使它没有给我们原先想要的结果.另一种可能解决此问题的方法可能是自定义SearchBar,但这是另一个主题.

uinavigationbar uisearchbar ios11

69
推荐指数
3
解决办法
3万
查看次数

当第一次运行`FIRApp.configure()`时,应用程序崩溃

我对新的Firebase有一个奇怪的错误,我无法搞清楚.我已经启用了火力地堡分析和系统崩溃日志和我打电话FIRApp.configure()didFinishLaunchingWithOptions作为文档说.

但是,当我第一次运行应用程序时,它有时会崩溃而不提供任何详细信息.我只能从firebase的崩溃部分提供这个(总是相同的)crashlog.任何遇到与新Firebase类似问题的人?

___ZN3ggl10GLRenderer5frameEPNS_12RenderTargetEPNS_11RenderQueueE_block_invoke_2 + 4103720
___ZN3ggl10GLRenderer5frameEPNS_12RenderTargetEPNS_11RenderQueueE_block_invoke_2 + 4103704
___ZN3ggl10GLRenderer5frameEPNS_12RenderTargetEPNS_11RenderQueueE_block_invoke + 4102664
_dispatch_call_block_and_release + 5304
_dispatch_client_callout + 5240
_dispatch_queue_drain + 54460
_dispatch_queue_invoke + 20348
_dispatch_root_queue_drain + 62348
_dispatch_worker_thread + 71984
_pthread_body + 15140
_pthread_start + 14984
thread_start + 4132
Run Code Online (Sandbox Code Playgroud)

更新

我现在已经发现只有在加载的第一个视图包含MKMapView时才会发生此崩溃.将初始视图更改为例如UITableView可以修复崩溃.我将联系firebase支持.

ios firebase

6
推荐指数
1
解决办法
2264
查看次数

iOS 11 UITableView isEditing 标志未正确设置

我在使用 iOS 11 SDK 时遇到了一个非常奇怪的问题。当editing在 iOS 11 设备和模拟器上将 UITableView 的标志设置为false使用滑动手势删除单元格后,它仍然保留true在设置后的下一行。在 iOS 10 及以下版本的设备上,该标志被正确设置为false。请看一下这个简短的例子。

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    return true
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as UITableViewCell!
    return cell
}

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
    if editingStyle == .delete {
        tableView.deleteRows(at: [indexPath], with: .fade)
        endEditingMode()
    }
}

func endEditingMode() …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift swift3 ios11

6
推荐指数
1
解决办法
2346
查看次数

如何在不同的SpriteKit场景中显示iAd横幅

我用Swift和SpriteKit做了简单的游戏.一切似乎都有效但我的iAd设置有问题.我只想在游戏过程中不在特定场景(主菜单和游戏结束)中显示广告横幅.我的iAd设置可以正常工作,但前提是它始终显示.我最后一次尝试修复它是使用NSNotificationCenter方法.我已经完成了,因为我已经在其他问题/答案中看到了它,但应用程序在发布后立即崩溃.希望有人能帮助我.如果您需要更多我的代码,请告诉我.提前致谢.

GameViewController.swift

class GameViewController: UIViewController, ADBannerViewDelegate {

var adBannerView = ADBannerView(frame: CGRect.zeroRect)

override func viewDidLoad() {
    super.viewDidLoad()

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "handleNotification", name: "hideAd", object: nil)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "handleNotification", name: "showAd", object: nil)

    self.adBannerView.delegate = self
    self.adBannerView.hidden = true
    adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height - adBannerView.frame.size.height / 2)
    view.addSubview(adBannerView)

    if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
        // Configure the view.
        let skView = self.view as SKView

        /* Sprite Kit applies additional optimizations to improve rendering performance */
        skView.ignoresSiblingOrder = true …
Run Code Online (Sandbox Code Playgroud)

ios iad sprite-kit swift

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