在国家重大的记念、缅怀、祭奠等特殊的日子里,我们可以让SwiftUI自动将视图内里所有的内容变为黑白的色调。比如今天是“祭奠南京大屠杀遇难同胞”的日子,所以淘宝、京东、招行等各大APP首页或者全部页面变成了黑白色调。下面我们将利用swiftUI的修饰器对视图进行饱和度修改。
saturation可以调整此视图的颜色饱和度并返回新的视图,amount参数传入一个Double值。其饱和度以20%的增量从0(灰色)增加到100%(全红色),所以我们只需要将此值设为0即可实现黑白色调。
下面我们将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
《【SwiftUI实战】利用saturation在缅怀的时间视图变为黑白色调》的网友评论(0)