75142913在线留言
【SwiftUI实战】利用saturation在缅怀的时间视图变为黑白色调_IOS开发_网络人

【SwiftUI实战】利用saturation在缅怀的时间视图变为黑白色调

Kwok 发表于:2021-12-13 11:13:16 点击:40 评论: 0

在国家重大的记念、缅怀、祭奠等特殊的日子里,我们可以让SwiftUI自动将视图内里所有的内容变为黑白的色调。比如今天是“祭奠南京大屠杀遇难同胞”的日子,所以淘宝、京东、招行等各大APP首页或者全部页面变成了黑白色调。下面我们将利用swiftUI的修饰器对视图进行饱和度修改。

一、saturation 饱和度

saturation可以调整此视图的颜色饱和度并返回新的视图,amount参数传入一个Double值。其饱和度以20%的增量从0(灰色)增加到100%(全红色),所以我们只需要将此值设为0即可实现黑白色调。

二、将saturation应用到实际项目中

下面我们将saturation应用到项目中,并在指定的时间里自动变换色调。以我目前正在做的美食圈APP为例,我们直接将修饰器应用在NavigationView上即可:

var body: some View{
    NavigationView {
        TabView(selection: $sittings.selectedTab) {
            ForEach(AppSettings.Tab.allCases, id:.self){ tab in
                MainTabView(tab: tab)//Table视图遍历
            }
        }
    }
    .saturation(0)//修改为黑白色调
    .navigationViewStyle(StackNavigationViewStyle())
}

可以看到整个APP已变成了黑白的色调,下面我们进行一些调整,让其在一些特别的日子自动变为黑白,平时为正常色调。

 我们增加一个计算属性进行“记念日”的判断。

var isRememberDay:Bool{
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "MM-dd"//月和日
    let today = dateFormatter.string(from: Date())
   // print(today)
    switch today{
        case "12-13":return true//祭奠南京大屠杀遇难同胞
        case "09-18":return true//九 . 一八事变
        default:return false//平时返回“false”
    }
}

然后将上面的修饰器改为:

.saturation(isRememberDay ? 0 : 1)

我们只需要在switch 里增加记念日的case项即可,当时间条件满足后,我们的app将自动转换饱和度以达到黑白与彩色切换。

除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:https://www.55mx.com/post/182
标签:saturation黑白Kwok最后编辑于:2021-12-13 11:13:19
0
感谢打赏!

《【SwiftUI实战】利用saturation在缅怀的时间视图变为黑白色调》的网友评论(0)

本站推荐阅读

热门点击文章