- 1. iOSでボタンを何度もタッチしないと押せない現象
- 2. ライブラリを利用してProgressBarを実装
- 3. [Swift5]UIButtonタップしてタブを切り替える方法(応用可能)
- 4. [Swift] private(set)を簡単に説明
- 5. podfile関連エラーと対処法(自分用メモ)
- 6. NFCタグにスマホをかざして家電を操作できるようにしてみた
- 7. 【iOS】最初に表示する storyboard を変更する
- 8. [SwiftUI]SwiftUIの記法をSwiftらしく理解する。
- 9. [Swift] TableViewCellのStyleをCustom以外にする
- 10. Xcode 12 にてエミュレータビルドと実機ビルドが両立できなくなった件
- 11. 【Swift】Cloud Firestore でドキュメントだけでなくドキュメント Id も取得する
- 12. 体温を毎日記録しておくためのショートカットアプリをつくった【じぶんでできるコロナ対策】
- 13. [Swift] PanModalでお手軽にモーダルを実装する
- 14. ARKit+CoreML+LiDAR で 物体のコピー
- 15. [Swift] UIImageViewの簡単な実装
- 16. [Swift] Unwind segue の使い方
- 17. unrecognized selector sent to instanceエラーはこんな時にも出る。
- 18. 【Dart】Mapのvalueを使ってソートする
- 19. iOSのUNLocalNotificationを3分で理解
- 20. [Swift5]アプリからiPhoneの設定画面へ遷移する方法
iOSでボタンを何度もタッチしないと押せない現象
#はじめに
webの改修のためボタンを追加したのですが、iOSでボタンを押そうとしたとき何度かタッチしないと反応しない現象が起こりました。#原因
iOSではhover等を1タッチ分としてカウントします。
今回の場合既存コードで全体にかかる外側のdivにonmousemoveイベントがかかっており、これを1回タップした後フォーカスを移動させるためにもう1タップしてからでないと中に追加したボタンを押せなかったようです。#修正方法
onmousemoveイベントを対象部分のdivに移して、ボタン部分に影響しないよう修正しました。#まとめ
ブラウザによってcssやJSの動作が異なることがあるのですが、iOSはそういうバグが特に多かったので今後は先に自分でテストしておきたいと思います。
ライブラリを利用してProgressBarを実装
#はじめに
現在開発中のカウントアプリにあとゴールまでどのぐらいなの感覚的に伝えるためにProgressBarを導入する事にしました。
この記事では、その際に試した事をアウトプットしようと思います。
#完成形
#使用したライブラリ
・MBCircularProgressBar
→https://github.com/MatiBot/MBCircularProgressBar#CocoaPodsを利用してインストール
CocoaPodsを使用してSwiftConfettiViewをインストールしてください。“`
pod “MBCircularProgressBar”
“`
Podfileに上記を入力して“pod install “。#Storyb
[Swift5]UIButtonタップしてタブを切り替える方法(応用可能)
## 今回やりたいこと
ログインページなどでよく見かけるモーダル遷移で表示したController内で、
UIButtonをタップすると、指定したTabを選択状態にしてモーダル画面を閉じるということ。つまり、モーダル画面の裏側でタブの切り替えをおこなうということです。
挙動動画
https://gyazo.com/828856720584516e602ebffd83f71c22添付動画を例に挙げると、タブ1(アカウントタブ)をタップしてモーダル画面を表示し、
キャンセルボタンをタップするとタブ(ニュースタブ)に切り替わってからモーダル画面を閉じるということ。これはタブの数が増えても応用できますし、UIButtonだけでなく様々な場面で応用できます。
## 実装コード
“`swift
//キャンセルボタンをタップすると呼ばれる
@objc func cancelTap() {//①タブバーのインスタンスを取得
if let tabBarController = UIApplication.shared.keyWindow?.rootView
[Swift] private(set)を簡単に説明
#private(set)とは
private(set)が定義されているクラスや構造体の中では変更できるが、それ以外の場所では読み取りのみ行う事が出来ます。
privateだけの場合は、定義されている場所内では変更・読み取りできるが、
それ以外では変更も読み取りも出来ません。
private(set)は変更できないようにアクセス制限するが読み取りは可能でprivateより制限がゆるいという事です。
#使ってみた
private(set)の方はエラーにならず、読み取り出来ています。“`swift
class test {
private var number1 = 0
private(set) var number2 = 2
}let Test = test()
class test2 {
let a = Test.number1 //’number1′ is inaccessible due to ‘private’ protection level
let b = Test.number2
}
“`
podfile関連エラーと対処法(自分用メモ)
#発生したエラー
iphoneのシミュレータでデバックしようとすると下記のようなエラーが出る##エラー文①
“`dart
Error output from Xcode build:
objc[27479]: Class AMSupportURLConnectionDelegate is implemented in both ?? (0x1f5bfb8f0) and ?? (0x11acd02b8). One of the two will be used. Which
one is undefined.
objc[27479]: Class AMSupportURLSession is implemented in both ?? (0x1f5bfb940) and ?? (0x11acd0308). One of the two will be used. Which one is
undefined.
“`##エラー文②
“`dart
Error output from CocoaPods:
[!] Automatical
NFCタグにスマホをかざして家電を操作できるようにしてみた
#はじめに
ここ最近、リモートで働くようになって家にいる時間が長くなってきました。少しでも面倒なことはなくしていきたいということで、NFCタグにスマホをかざすだけで家電を操作できるようにしました。ちょっと宣伝になってしまうのですが、少し前に[nature_remo_api](https://rubygems.org/gems/nature_remo_api)というgemを作ったので、そちらを使っていこうと思います。#用意するもの
– iPhone
– NFCタグ(自分は[こちらのNFCタグ](https://www.amazon.co.jp/gp/product/B088HD9JQS/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1)を購入しました。ただ、ちょっと反応が悪い気がする・・)
– Raspberry Pi
– Nature Remo#全体の流れ
ざっくりですが、最終的な全体の構成は以下のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.a
【iOS】最初に表示する storyboard を変更する
# 環境
* Xcode 12.3
# 方法
info.plist の Main storyboard file base name だけでなく、下図でハイライトされている行も変更する。
![スクリーンショット 2020-12-12 10.32.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/650727/e05045f3-0d3f-ee2d-e955-484d581b06a8.png)
[SwiftUI]SwiftUIの記法をSwiftらしく理解する。
[SwiftUI](https://developer.apple.com/jp/xcode/swiftui/)はこれまでのUIKitを用いたUIの作成に変わる新たな方法としてWWDC 2019で発表されたフレームワークです。最近ではWidgetがSwiftUIでないと作れなかったりと、将来的にはSwiftUIを用いた開発が主流になっていくと思います。
自分もだいぶ前からSwiftUIの勉強をなかなか気乗りせずにいましたが、Widgetを期に本格的に勉強を始めました。。↓有限不実行のツイート
そろそろSwiftUIマジで本格的に勉強しよう
— M (@p_x9) July 8, 2020