美文网首页
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