美文网首页
100 Days of SwiftUI 03

100 Days of SwiftUI 03

作者: 脑子 | 来源:发表于2020-11-04 05:05 被阅读0次

算术操作符

//GeometryReader占更多位置,得添加别的view
                GeometryReader { geometry in
                    RoundedRectangle(cornerRadius: 2)
                        .foregroundColor(.red)
                        .frame(width: 30, height: 4)
                        //偏移屏幕宽度的一半加推荐两个字宽度的一半
                       // .offset(x: UIScreen.main.bounds.width * 0.5 * (self.leftPercent - 0.5) + kLabelWidth * CGFloat(0.5 - self.leftPercent))
                        //geometry.size.width的宽度,0:geometry的一半;1:
                        .offset(x: geometry.size.width * (self.leftPercent - 0.5) +  kLabelWidth * (0.5 - self.leftPercent))
                }

范围操作符

    //在init方法创建UserData的时候先初始化两个字典,UserData一创建recommendPostDic,hotPostDic这两个字典九已经更新好了,包含了每条微博的ID及它在数组里的序号
    init() {
        //推荐列表的元素个数,每次取出一个元素赋值给i然后执行花括号里的命令,i是推荐列表的数组的序号
        for i in 0..<recommendPostList.list.count {
            //数组取下标更新微博
            let post = recommendPostList.list[i]
            //key是微博的ID(post.id),value是微博在数组里的序号i
            recommendPostDic[post.id] = i
        }
        for i in 0..<hotPostList.list.count {
            let post = hotPostList.list[i]
            hotPostDic[post.id] = i
        }
    }

三元操作符

//点赞按钮
                PostCellToolbarButton(
                    image: post.isLiked ? "heart.fill" : "heart",
                    text: post.likeCountText,
                    color: post.isLiked ? .red : .black
                ){
                    if post.isLiked {
                        post.isLiked = false
                        post.likeCount -= 1
                    } else {
                        post.isLiked = true
                        post.likeCount += 1
                    }
                    //更新userdata
                    self.userData.update(post)
                }

switch

let weather = "晴天"
switch weather {
case "多云":
    print("多云")
    fallthrough
case "晴天":
    print("晴天")
    fallthrough
case "冰雹":
    print("冰雹")
    fallthrough
case "台风":
    print("台风")
    fallthrough
case "闪电":
    print("闪电")
default:
    "这就今天的天气!"
}

输出 :
晴天
冰雹
台风
闪电

  • fallthrough 如果当前case为true,后面有case会继续执行紧跟着那条case,不管那个case对不对都当它为true。如果后面还有fallthrough则继续像这样执行。
  • switch 和枚举有点像,都有case,不过switch必须要有default?或者直接把case都写完整
enum PostListCategory {
    case recommend, hot
}

相关文章

网友评论

      本文标题:100 Days of SwiftUI 03

      本文链接:https://www.haomeiwen.com/subject/omewvktx.html