投稿

ラベル(Swift)が付いた投稿を表示しています

【iOS】今更聞けない UIViewControllerのライフサイクル その2 (Swift)

【iOS】今更聞けないUIViewControllerのライフサイクル その2 (Swift) 過去に書いていたのですが、意外と観ていただいている人がいたので、更新版です 忘れやすいですよね もう少し、細かいイベントを追加しました 表示する時 awakeFromNib loadView viewDidLoad loadViewIfNeeded viewWillAppear viewLayoutMarginsDidChange viewSafeAreaInsetsDidChange updateViewConstraints viewIsAppearing viewWillLayoutSubviews viewDidLayoutSubviews viewDidAppear 別ページ表示する時 viewWillLayoutSubviews viewDidLayoutSubviews viewWillDisappear viewWillLayoutSubviews viewDidLayoutSubviews viewDidDisappear import UIKit class ViewController: UIViewController { override func awakeFromNib() { super.awakeFromNib() print("awakeFromNib") } override func loadView() { super.loadView() print("loadView") } override func viewDidLoad() { super.viewDidLoad() print("viewDidLoad") } override func loadViewIfNeeded() { super.loadViewIfNeeded() print("loadViewIfNeeded")

【Swift】Zipファイル判定

Swiftで ZIP判定用です。 もっとスマートなやり方は有ると思いますが暫定で作成です。 よく見かける物を関数にしたもの。 ・ファイルを読み込む。 ・先頭4byteを取得 ・ZIPのheaderをcheckしてZIPのheaderならtrue を返す

【iOS】 アプリ内でTweetしたい場合、Swifterがベストかな?

こんにちは、 アプリ内でTwitterの投稿をしたく、色々とSDKを探していました。 TwitterKitはすでに、開発中止だったので。公式にあったSwifterが、 一番まともそう。  でも、これって、Swift 用のライブラリです。 Objective-Cでは無いんです。 探しても、流石にもうない様子。 なので。 Objective-Cでも使えるように、検討しました。 そしたら・・・・。  なんと!! 普通に利用できました。 そのまま、利用する事ができなかったので、 ラップする、Swift のコードを書いて、そのラップしたコードを Objective-C側から呼ぶようにすれば、できました。

【iOS】メモ Swift4 transform 最大値 、最小値

let max = 10.0 let min = 0.5 let  scale =  sqrt ( abs ( self . transform . a  *  self . transform . d  -  self . transform . b  *  self . transform . c )) if (scale >  max ){  self . transform  =  self . transform . scaledBy (x:  max  / scale, y:  max  / scale) } else   if (scale <  min  ){  self . transform  =  self . transform . scaledBy (x:  min  / scale, y:  min  / scale) }

【iOS】指定の言語のStringを取得したい時

多言語化を実装されていて、とある要件で日本語の端末の状態で、 日本語と英語だった場合のStringがほしい時に書きました。 ja.lproj とか en.lproj とかを直接読み込んで、やってます。 引数に、 en とか iOS でローカライズ化した言語を指定する。 key は、ローカライズのkeyです。 エラー処理等は入れて無いので、適宜やってね。 func SelectLocalizeString(lang: String ,   key: String ) -> String {      let p: String ? = Bundle . main . path (forResource: lang, ofType: "lproj" )     let b: Bundle ? = Bundle (path: p!)     return NSLocalizedString (key, tableName: nil , bundle: b!, value: key, comment: nil ) }

【iOS】今更聞けない、UIViewControllerのライフサイクル。 (Swift)

いまさら聞けない、UIViewControllerのライフサイクル。(Swift) 下記が主なイベント class ViewController : UIViewController {     override func viewDidLoad () {         super . viewDidLoad ()         print ( "viewDidLoad" )     }          override func viewWillAppear ( _ animated: Bool ) {         super . viewWillAppear (animated)         print ( "viewWillAppear" )     }     override func viewDidAppear ( _ animated: Bool ) {         super . viewDidAppear (animated)         print ( "viewDidAppear" )     }     override func viewWillLayoutSubviews () {         super . viewWillLayoutSubviews ()         print ( "viewWillLayoutSubviews" )     }     override func viewDidLayoutSubviews () {         super . viewDidLayoutSubviews ()         print ( "viewDidLayoutSubviews" )     }     override func viewWillDisappear ( _ animated: Bool ) {         super . viewWillDisappear (animated)         print ( &quo

【iOS】 ヒラギノフォントが切れる件 ( UILabel )

イメージ
iOS で開発していると、フォント指定がありますが、 ヒラギノフォントを指定した場合、 UILabel ( UIButton ) で表示しようとすると文字が切れるやつがいます。 特に、sizeToFit() を呼ぶと結構悲惨です。 切れる可能性がある文字たちは下記 ① gjpqy Ä Ö Ü ß ĀĂĄąĆĈĊČĎ Ņ gjの文字が消えないように検索したら、 他のサイトでは、 NSAttributedString.Key.baselineOffset: NSNumber(value:1.0) とか位置少し上にずらして attributedText に入れるとか記載がありますが完全ではありませんでした。 Ä Ö Ü の「..」のなどの部分が切れてしまいます。  そこで、どうしてもだめだったら、完全では無いですが、 下記を試して見てください。 clipsToBounds = false 意外と盲点だったりします。 まぁ、画面上下ピッタリの場合はだめかも知れませんが. こんな感じに表示可能です。(赤が本来のViewの領域)

【iOS】swift4 ナビゲーションコントローラー 非活性化

タイトル通りで、 ボタンを押せなくする方法。 self . navigationController ?. navigationBar . isUserInteractionEnabled = false ちゃんと、押せるように戻すようにしておくこと!

【iOS】swift の 配列を for する時、、、

Swift 4で確認済み ちょっと恥ずかしい話、 var array = [ "1" , "2" ] for i in 0 ... array . count - 1 {          print ( array [i]) } ↓ こう書けば良かったんだ。 for i in 0 ..< array . count {          print ( array [i]) } いや、必ず要素が1個以上ある場合は、いいんだけど。 要素が0個の時、強制終了する。

【iOS】Swiftでtransformから角度、ラジアン、ディグリー、スケールを求める

メモ Swift 4 でtransformから角度、ラジアン、ディグリー、スケールを求める 忘れがちなので・・・。 let transform = view.transform let radians = atan2(transform.b, transform.a) let degrees = radians * 180 / .pi let scale = sqrt(abs(transform.a * transform.d - transform.b * transform.c)) import CoreGraphics extension CGAffineTransform { var angle: CGFloat { return atan2(b, a) } var radians: CGFloat { return angle } var degrees: CGFloat { return angle * 180.0 / CGFloat.pi } var scale: CGPoint { return CGPoint(x: sqrt(a * a + c * c), y: sqrt(b * b + d * d)) } } // 例として、適当な CGAffineTransform を作成 let transform = CGAffineTransform(rotationAngle: CGFloat.pi/4).scaledBy(x: 2.0, y: 1.5) let angleInRadians = transform.radians let angleInDegrees = transform.degrees let scale = transform.scale print("Angle in radians: \(angleInRadians)") print("Angle in degrees: \(angleInDegrees)") print("Scale: \(sca

Locale.availableIdentifiers の中身 iOS 12

iOS 12   iPhone7 にて確認して現在は797 種類あるようです。 let i dentifiers = Locale . availableIdentifiers ▿ 797 elements   - 0 : "eu"   - 1 : "hr_BA"   - 2 : "en_CM"   - 3 : "en_BI"   - 4 : "rw_RW"   - 5 : "ast"   - 6 : "en_SZ"   - 7 : "he_IL"   - 8 : "ar"   - 9 : "uz_Arab"   - 10 : "en_PN"   - 11 : "as"   - 12 : "en_NF"   - 13 : "ks_IN"   - 14 : "es_KY"   - 15 : "rwk_TZ"   - 16 : "zh_Hant_TW"   - 17 : "en_CN"   - 18 : "gsw_LI"   - 19 : "ta_IN"   - 20 : "th_TH"   - 21 : "es_EA"   - 22 : "fr_GF"   - 23 : "ar_001"   - 24 : "en_RW"   - 25 : "tr_TR"   - 26 : "de_CH"   - 27 : "ee_TG"   - 28 : "en_NG"   - 29 : "fr_TG"   - 30 : "az"   - 31 : "fr_SC"

Swift ログ出力

ログ出力メモ Swift フラグで持たせても良いし、buildで分けるのでもよい。 class MyLog{           static func d( _ str: String ){         #if DEBUG                 print (str)         #endif     } } こんな感じに使う。 MyLog.d("aaaa")