![https://swift-study.com/uikit/uitableview/uitableview-cell-customize-basic/](https://cdn-ak-scissors.b.st-hatena.com/image/square/2118267715c77b72f816fa378be25171c47afa5e/height=288;version=1;width=512/https%3A%2F%2Fwww.swift-study.com%2Fwp-content%2Fuploads%2F2016%2F08%2Fheader-1-1.jpg)
Swift言語がAWS Lambdaで利用可能に。Swift開発チームが「Swift AWS Lambda Runtime」公開 Swift開発チームは、AWS LambdaでSwift言語を利用可能にする「Swift AWS Lambda Runtime」の公開を発表しました。 Use Swift to create serverless functions that run in the cloud. The new Swift AWS Lambda Runtime project is now live. Read more about it here: https://t.co/lPNYGWUzAs — Swift Language (@SwiftLang) May 29, 2020 Swift言語はiOSやmacOSなどのApple社製デバイスに対応したアプリケーション開発のため
通知を行うための準備 ユーザへ通知許可を要求 これまでと同様、通知を行うためにはユーザに許可を得る必要があります 場所的には、アプリ起動時に呼ばれるapplication(_:didFinishLaunchingWithOptions:)がよいでしょう func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // notification center (singleton) let center = UNUserNotificationCenter.current() // ------------------------------------ // 前準備: ユ
1. セルの高さを一定の値に固定したい場合 tableview.rowHeight = 高さ とする。 もしくはUITableViewDelegateを継承している場合、以下の書き方でもセルの高さを固定させることができる。 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 高さ } 2. セルの高さを可変にしたい場合 tableView.estimatedRowHeight = 高さ tableView.rowHeight = UITableViewAutomaticDimension の2つを追記する まとめ class ViewController: UIViewController,UITableViewDelegate,UITableVi
こんにちは、株式会社PlaygroundのiOSエンジニア伊原です! 前回、Cloud Functionsからモバイルにリッチプッシュ通知を送信する方法を説明しました。 今回は、Cloud Functions で送信したPush通知をiOSアプリで受信する方法を紹介していきます。 Push通知送信のためにFirebaseプロジェクトにAPNs認証キーを登録しようFirebaseコンソール>プロジェクト設定>クラウドメッセージング を開きます。 iOSアプリのPush通知に必要なp8ファイルのアップロードクラウドメッセージングを開くと、”iOSアプリの構成”という項目があります。 ここにAPNs認証キーをアップロードしていきます。 アップロードするファイルは、AppleDeveloperから取得する必要があります。 Apple Developer> Certificates, Identif
はじめに iOSでPUSH通知を受信する時のAppDelegateのメソッドをまとめておきます。 2021年6月追記 : Xcode 12では、UIKit App DelegateとSwiftUI Appが選択できる。UIKit App Delegateを選択した場合は、AppDelegateとSceneDelegateがある。本記事は、ios12で利用されていたAppDelegateを利用した場合のことを記載している。 環境 Xcode : 10.2.1 (2019年7月), 12.5 (2021年6月確認) ios : 12.3.1 (2019年7月), 14.6 (2021年6月確認) AppDelegateでのPUSH通知の種類 iosアプリがPUSH通知を受信する種類は以下の3つがあります。 以下ではそれぞれを説明します。 アプリが起動していない時にPUSH通知を受信した場合 ア
はじめに IOSアプリを開発していて、簡単なユーザー情報であればDBを介さずに"UserDefaults"もしくは"documentDirectory"を利用するのがセオリーらしいので簡単にまとめてみました。 今回はDocuments配下に画像データを保存してみます。 手順は以下になります。 ①「画像をDocuments下のフォルダに保存する」 ②「Documents下のパス情報をUserDefaultsに保存する」 ③「画像を読み込む際に②で保持したパス情報をUserDefaultsから参照して読み込み」 swiftではディレクトリ・ファイルの操作にはFileManagerクラスを使用します。 今回は画像データの保存から読み込みの紹介のみになるのでその他のファイル関係の操作が必要になったら、FileManagerクラスに適当なメソッドが無いか公式ドキュメントをご確認ください。FileMa
エンティティ サンプルコード用にユーザテーブルを定義します。 構造体にはCodable、RowConvertible、MutablePersistableのプロトコルを追加します。 struct UserTable : Codable, RowConvertible, MutablePersistable { // 今回は全カラムNotNullで var id: Int var name: String var age: Int var lastUpdate: Int64 static var databaseTableName: String { return "tbl_user" // テーブル名 } static func create(_ db: Database) throws { try db.create(table: databaseTableName, body: { (
apple-app-site-associationのpaths(遷移対象パス)の作り方(UniversalLinks対応)iPhoneXcodeiOSiOS9UniversalLinks 概要 iOS9からはじまったUniversal Links(Deep Link) 詳しい導入方法はこちらの記事などで載っています。 URLスキーム・独自ディープリンク実装に代わる、Universal Links(iOS 9で導入)でより良いUXを実現 http://qiita.com/mono0926/items/2bf651246714f20df626 Universal Links日本語ガイドhttps://developer.apple.com/jp/documentation/General/Conceptual/AppSearch/UniversalLinks.html 実際に導入した際に、細
これiOS13、Xcode11 私はこうしてつまずいた Advent Calendar 2019 の23日目を担当するアガツマです 普段は、ビジネス版マッチングアプリ yenta のiOS版を開発をしています。 前日の記事 iOS13のメインスレッドチェック厳格化とNotificationCenterの組合せでつまづいた と少し被るのですが、1つのケースとして誰かの役に立てたら幸いです! つまずいた経緯 iOS13対応の諸々を完了し、アプリの課金プランについて記述している画面を開こうとしたところクラッシュ。。。 xcodeでは、以下のようなエラーメッセージが出力されていました。 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Modifications to the
メインスレッドチェックの厳格化 元々、「UIの更新はメインスレッドで行うべし」というお約束はありましたが、Xcode11より、 iOS13ではサブスレッドからUIコンポーネントを変更するとクラッシュするようになりました。 サブスレッドからUIコンポーネントに「アクセスしただけ」で警告されるようになりました。 ビルド時の静的チェックではなく、ランタイムで該当コードを通ると紫にハイライトされます NotificationCenterのスレッド Notificationのpost元がメインスレッドであれば、addObserverで設定した関数(以下observer関数)はメインスレッドで処理されます。 Notificationのpost元がサブスレッドであれば、observer関数はサブスレッドで処理されます。 私のつまづき経緯 既存のNotificationをpostするコードをサブスレッド処
I have a webview in a modal view controller on iOS13. When the user tries to upload an image to the webview, it crashes. This is the exception I'm getting: 2019-09-30 17:50:10.676940+0900 Engage[988:157733] * Terminating app due to uncaught exception 'NSGenericException', reason: 'Your application has presented a UIDocumentMenuViewController (). In its current trait environment, the modalPresentat
環境 Swift 4.0.2 iOS 11.1.2 Xcode 9.1 スプラッシュ画面の設定 TARGETS>GeneralタブのStatus Bar StyleをLightにする 画面ごとに設定する 文字色を白色にしたいViewControllerで以下のコードを追加 override var preferredStatusBarStyle: UIStatusBarStyle { // ステータスバーの文字色を白で指定 return UIStatusBarStyle.lightContent } なお、Info.plistに「View controller-based status bar appearance」追加して値をNOとしている場合、上記のコードを追加しても文字色が変わりませんので、この方法を使う場合「View controller-based status bar appe
1.はじめに まずは完成形を。 遷移元の画面上にオーバレイする形でモーダルビューを表示します。 いつもとちょっと違ったモーダルを出したいときに重宝しています。 2.呼び元の ViewController class PresentationControllerViewController: UIViewController { @IBAction func openButton(_ sender: UIButton) { let modalViewController = ModalViewController() modalViewController.modalPresentationStyle = .custom modalViewController.transitioningDelegate = self present(modalViewController, animated
// MARK: - Load Web Page private func load(withURL urlStr:String) { guard let url = URL(string: urlStr) else { return } let request = URLRequest(url: url) wkWebView.load(request) } // MARK: - 読み込み設定(リクエスト前) func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { print("リクエスト前") /* * WebView内の特定のリンクをタッ
import Foundation extension String { //絵文字など(2文字分)も含めた文字数を返します var length: Int { let string_NS = self as NSString return string_NS.length } //正規表現の検索をします func pregMatche(pattern: String, options: NSRegularExpression.Options = []) -> Bool { guard let regex = try? NSRegularExpression(pattern: pattern, options: options) else { return false } let matches = regex.matches(in: self, options: [], range: N
デリゲートはよくわかりませんでした。だから、それをとても簡単に説明したいと思います。 Swiftです。 (※注意。僕はエンジニアではないので、間違いなどあったらごめんなさい。ご指摘頂けるととても嬉しいです。) どうでもよい追記: => エンジニアのお仕事頂けるようになったので、一応駆け出しエンジニアくらいにはなれました!(^^)/ どうしてデリゲートは分かりにくいのか。 僕はこう思います。 登場人物がはっきりしていない。 定義がはっきりしていない。 (はっきしているかもしれないけど、僕ははっきり理解できなかった。) ちなみに、上の2つの曖昧なモノのうち、1つは今だに曖昧です。それでも大丈夫です。デリゲートとプロトコルについては理解できます。 登場人物だけおさえれば理解はできると思います。 まずは定義について 教科書(The Swift Programing Language)を読んでみます
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く