LoginSignup
3
2

More than 3 years have passed since last update.

【SwiftUI】ハイライトする方法

Posted at

はじめに

SwiftUIで手軽にハイライトさせることが出来たのでそれをまとめました。
アプリのユーザーに何か知らせる時、ハイライトで視覚的に訴えかけられれば良いなと思ったのがきっかけです。

こんな感じでハイライトされます。
ezgif.com-video-to-gif-4.gif

ソースコード

コードの必要箇所だけ抜粋しました。
レイアウトを自由に設定して使用することができます。

ContentView.swift
struct ContentView: View {

  @State private var isHighlight = false

  var body: some View {
    VStack {
      Text("Hello World!")
        .overlay(Color.yellow
                  .opacity(isHighlight ? 1 : 0))

      Button("HIGHLIGHT") {
        isHighlight = true
        withAnimation(.easeOut(duration: 1)) {
          isHighlight = false
        }
      }
    }
  }
}


同じボタンにtrueとfalseを両方入れて動くのか不安でしたが、想定通りの動きをしてくれました。
最初にisHighlightをtrueにして、opacityを1にして、その後1秒かけてopacityを0にしていく動きとなります。
これでハイライトらしい動きとなりました。

上記動画のコード全体はこちら。
https://gist.github.com/takuma-2531/fcc0946555e7ff45d24eb0e72e545453

おわりに

SwiftUIは少し工夫するだけで様々な動きを実装できて面白いです。
ハイライトの色とか形とか時間とか変えて使っていただけると嬉しいです!
同時に文字サイズとか変えても面白そうですね。
最後まで読んでくださりありがとうございました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2