まだどこにもないアプリを作る

アプリ開発でつまづいたところなどを中心に記事にして行きます。

Swift

WebKit WebViewの背景色を透明にする

var webView: WKWebView! webView.isOpaque = false webView.backgroundColor = .clear

Swift 数の増える配列の宣言

0,1,2,3,4,5,6のように1ずつ値が増えていく配列の簡単な作り方 var intArray = [Int](0...6) print(intArray)//[0, 1, 2, 3, 4, 5, 6] キーワード 1ずつ増える配列,だんだん大きくなる配列,配列初期化

Swift UIDocumentPickerViewControllerで 全てのファイルを選択可能にする

.itemを指定すれば全て選択できるようになると思われます。 var picker = UIDocumentPickerViewController(forOpeningContentTypes: [.item],asCopy: false) キーワード Make all files selectable in Swift UIDocumentPickerViewController

Swift UIKit TableViewをコードで実装する 最低限のシンプルなコード

コピペで動くと思います。 実機でのシミュレートだと下記のように一番上のセルに"aaa"と表示されます。

Swift TableViewヘッダー部分に謎の空白ができる対策

if #available(iOS 15, *) { tableView.sectionHeaderTopPadding = 0.0//ヘッダー部分に謎の空白ができる対策 } キーワード viewForHeader 下記の記事を参考にさせていただきました。 iOS15のUITableViewHeaderの上部に空白ができる - Qiita

UIImage.Orientation' to type 'CGImagePropertyOrientation'

There was no official conversion method, so I created my own. It may not be the best practice, but please use it if you like. 公式の変換メソッドがなかったので自分で作りました。 ベストプラクティスではないかもしれませんがよかったら使ってくだ…

swift UICollectionView UITableViewのドラッグ&ドロップしているかのフラグ

collectionView.hasActiveDrag これはDrag&Drop機能を有効にしているUICollectionViewもしくはUITableViewで アイテムをドラッグしているかどうかが判断できるフラグのようです。 true → ドラッグ中 false → ドラッグしていない 以下公式ドキュメント↓ devel…

Swift5 音楽を再生しながらでもアプリ内の音声を流す方法

音楽を再生しながらでもアプリ内の音声を流すにはAVAudioSessionCategoryAmbientを設定する必要があるのですがSwiftのバージョンごとに結構書き方が違います。 Swift5対応コードをシェアします。 AVFoundationをインポート import AVFoundation ViewDidLoad…

【SwiftUI】CoreData SortDescriptor を動的に使う。fetchResultsを動的に並び替える,ボタンを押したら並び替える

<読者の想定> Coredataを使ってアプリを作成しており 最初にCoreDataを使うにチェックを入れてアプリを作成し、それを元にアプリを作成している人に向けて書いております。 private var items: FetchedResults<Item> items.sortDescriptors = [SortDescriptor(\Ite</item>…

Swift5 UIKit セルをロングタップして検知 セルのインデックス番号も取得できる方法

teratail.com 上記のサイト様を参考にさせていただきました。 swift5 cellをロングタップした時の動作 override func viewDidLoad() { super.viewDidLoad() //セルのロングタップジェスチャー let longPressRecognizer = UILongPressGestureRecognizer(targe…

Swift SwiftUI - Date()で特定の日付を定義

SwiftUI Date 特定 日付 定義 初期値 こういうキーワードで検索してもヒットしにくかったので記事にしました。 以下のコードで2000年1月1日のDate型の変数を定義することができます。 let calendar = Calendar(identifier: .gregorian) let date = calendar.…

swift AVPlayer・AVFoundationなどで音楽止めずに再生する

以下のコードをViewDidLoad内に置きます。 do { let audioSession: AVAudioSession = AVAudioSession.sharedInstance() try audioSession.setCategory(AVAudioSession.Category(rawValue: "AVAudioSessionCategoryAmbient")) }catch{ print("エラー") } これ…

Swift 一度だけ実行したいアラートの書き方

すっきりしたコードではないし他にやり方があると思いますがこれで一応。 UserDefaultに保存してある値を変更しない限り 1度アラートを出したら2度と出ないアラートを作ることがきます。 let ud = UserDefaults.standard func onceAlert() {//単発アラート v…

Swift エラー Pods/Fabric/run: No such file or directory 一応の対処法

このエラーが出ている人はCrashlyticsを使っている人だと思いますが RunScriptがうまく作動してないのでこのエラーが出るようです。 対処している時間がなかったので 私の場合はCrashlyticsはひとまず使わないことにしました TARGET / Build PhasesのRun Scr…

swift 現在表示されているセルの最後のインデックスを取得 visiblecells

if let cell = tableView.visibleCells.last{ if let visibleIndexPath = tableView.indexPath(for: cell) { print("現在画面上に見えているセル中で最後のセルのインデックス値:", visibleIndexPath) } } お疲れ様です。 [増補改訂第3版]Swift実践入門 ──…

swift systemImageの大きさを変える方法 システムアイコンの大きさを変える SFSymbolのスケールを変える。

ios - Change a SF Symbol size inside a UIButton - Stack Overflow ↑スタックオーバーフローのQ&Aを参考にさせていただきました。 if #available(iOS 13.0, *) { let config = UIImage.SymbolConfiguration(pointSize: 160, weight: .medium, scale: .larg…

Swift 配列にて特定の要素を全て削除する方法

例えば この配列に含まれている5という数字を全て削除したい場合 var array = [0,1,2,3,4,5,5,6,7] array.remove(value:5) ↑このコードだと一つしか削除されません let a: (Int) -> Bool = { $0 == 5 } array.removeAll(where: a) ↑これで全ての5をいっぺん…

swift メモ備忘録 scrollViewの.zoomScaleでエラー

swift scrollViewの.zoomScaleでエラー warning: could not execute support code to read Objective-C class data in the process. This may reduce the quality of type information available. まだScrollViewが準備できていないときに scrollView.zoomSc…

Swift toolbarのbutton、barButtonItemをコードで書いているときに位置を調整する方法

hajihaji-lemon.com こちらのサイト様を参考にさせていただきました。 flexible Spaceはよく目にすることも多いですが 今回のはfixedSpaceです。 下のコードだと let flexibleItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, act…

swift メモ UIbuttonのisEnableプロパティはfalseにした後で、TargetActionをつけたらisEnableはTrueになる

UIbuttonのisEnableプロパティはfalseにした後で、TargetActionをつけたらisEnableはTrueになる button.isEnabled = false これをやった後に button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside) をつけてしまうと isEnable が自…

【Swift エラー】'GoogleUtilities/GULURLSessionDataResponse.h' file not foundの回避方法一例

プロジェクトに入っているFirebase Admob関連のライブラリが原因です プロジェクトに入っているFirebase Adomb関連のPodを全て一回削除します。 削除するには Podfileの文をコメントアウトするだけです。 #pod 'Firebase/Analytics' #pod 'Firebase/Crashlyt…

【swift】 配列から空の要素""を削除

swift配列から空の要素""を削除します。 削除するというよりフィルターをかけています。 下記の配列は 1番目-空 2番目-a 3番目-空白 4番目-タブ になってます。 var arr: [String] = ["","a"," "," "] arr = arr.filter { !$0.isEmpty }//空の要素を削除 pri…

【Swift】特定の文字を削除する方法

【Swift】特定の文字を削除する方法 なぜかいい感じに特定の文字を指定して削除するメソッドが見つからなかったので代わりに置換メソッドを使いましょう。 var str2 = "coffee" str2 = str2.replacingOccurrences(of: "f", with: "") print(str2) 出力結果 -…

【Swift】iOS13からのSystemIcon SFSymbolの太さをコードで変更する方法(UIKit)

こちらのサイト様を全面的に参考にさせていただきました。 How to use system icons in your app - free Swift 5.4 example code and tips SymbolConfiguration(weight:で変えることができます。 //SFSymbolの太さを指定 let boldConfig = UIImage.SymbolCon…

【Swift】BarButtonItemにシステムアイコンを指定する。UIBarButtonSystemItem

意外と手こずりました。 UIBarButttonItemとUIBarButtonSystemItemは違うようです。 ↓がUIBarButtonSystemItemをナヴィゲーションアイテムの右端のボタンに配置するやり方です。 //左上のバーボタンをシェアボタンに let myLeftButton = UIBarButtonItem(bar…

【Swift】フォトライブラリに何らかの変更があったときに検知する方法

Photosフレームワークをインポート import Photos まずPHPhotoLibraryChangeObserverを追加(継承) class ViewController: UIViewController,PHPhotoLibraryChangeObserver{ エラーの赤丸を押せば勝手に出てくる func photoLibraryDidChange(_ changeInstance…

【Xcode】error: Abort trap: 6 (in target '' from project '') のとりあえずの対処法

error: Abort trap: 6 (in target 'プロジェクト名' from project 'プロジェクト名') でなんかわからないけどビルドできなくなってしまいました。 ほぼ心当たりはありません。 Xcode Macの再起動試しましたがダメでした 解決法は こちらのサイト様参考にしま…

【Swift】 サブスレッドで処理したい時の書き方 参考程度

これでサブスレッドで動いていることになるのか 正直わからないのですが、 とりあえず別スレッドで処理する感じになるようです。 参考程度に書いてみてください。 Thread.detachNewThread { //サブスレッドでの処理 } 間違えていればコメントにてご報告して…

【Swift】Forループの中で重い処理をしたい場合はautoreleasepool{}でメモリ解放。

今までかなりこれを知らなくて苦労していました。 Cleaning Memory Footprint with the Autoreleasepool in Swift | by Oğuz Öztürk | Mediate Labs | Medium ↑こちらのサイト様によりますと For文やwhile文の中で作成されたオブジェクトはforループwhileル…

【Swiftエラー】Invalid parameter not satisfying: [name length] > 0

Storyboardを使わないアプリの作り方をしていたところこのエラーに遭遇しました 回避方法の一例としては Info.PListのここにある StoryBoardをDeleteキーで削除したところ 今回のエラーは消えました