ノート的なやつ

学んだことの備忘録です。ご指摘等お待ちしております。

UINavigationBarのborderを消す/デフォルトに戻す

概要

UINavigationBarの下端の境界線を消す方法は調べるといくらでも出てくるが、元に戻す方法はあんまりなかったので

環境
iOS 11-13
Swift 4.0(5にしたい)

ボーダーを消す

navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()

ボーダーを元に戻す

ボーダーを消す作業で入れたUIImageの引数にnilを入れるだけでした

navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.shadowImage = nil

Mac(Mojave)でControl+vでペーストができなくなった時の対処法

症状

急に Control + v でペースとできなくなった。右クリックからペーストはできる

原因

二つあるらしく(曖昧ですみません)、
1. ユニバーサルクリップボードの不具合
2. キャッシュが何か悪いことをしてる

解決法

原因が1

ユニバーサルクリップボードをoffにする

原因が2

ターミナルで sudo update_dyld_shared_cache 後再起動

UIBarButtonItemのactionが発火しない

と思ったら、 init(customView:) でUIButtonなどを入れこんで初期化しているとUIBarButtonItemのデフォルトのタップイベントは発火せず、中身のUIButtonのactionが発火するんですね。

以下参考までに
- RxSwift - extensionでUIBarButtonItemにrx.tapを生やしています

// 適当なフレーム
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 21, height: 23)) 
            
button.rx.tap
    .subscribe(onNext: { _ in
        print("=========こっちは反応する===")
    }).disposed(by: disposeBag)
            
let barButtonItem = UIBarButtonItem(customView: bellButton)
barButtonItem.rx.tap
    .subscribe(onNext: { _ in
         print("======こっちは反応しない====")
    }).disposed(by: disposeBag)

navigationItem.rightBarButtonItems = [barButtonItem]

Phalcon クエリビルダの勉強メモ

// phalcon QueryBuilder

$criteria = AnyModel::query() // criteriaInterface(実際はcriteriaオブジェクト)が返される

$resultset = $criteria->execute() // 検索結果(ResultsetInterface型(実際はResultsetオブジェクト)が返される)

$array = $resultset->toArray() // Resultsetがarray型になる(Objectが連想配列になる。クエリビルダは特に関係ないけどよく使うので)

carthage updateがうまくいかない時

現象

久しぶりに開くプロジェクトで carthage update --platform iOS をやったらライブラリをfetchする処理が途中で止まった

原因

わかりませんでした...carthageのキャッシュが悪さをしていたのでしょうか...

解決方法

rm -rf ~/Library/Caches/org.carthage.CarthageKit
rm -rf ~/Library/Caches/carthage

参考にした記事(こちらのが詳しいです):
https://qiita.com/shtnkgm/items/c96a58579ec406194fa8#carthageのキャッシュ削除