Ios 如何将Facebook闪影添加到图像和视图中?

Ios 如何将Facebook闪影添加到图像和视图中?,ios,swift,facebook,ios-animations,Ios,Swift,Facebook,Ios Animations,我正在试用Facebook shimmering库,我能够使用此代码将shimmering添加到文本标签 self.shimmeringView = FBShimmeringView(frame: CGRectMake(0, 0, 200, (self.navigationController?.navigationBar.bounds.height)!)) self.shimmeringView.contentView = navLabel self.navigatio

我正在试用Facebook shimmering库,我能够使用此代码将shimmering添加到文本标签

    self.shimmeringView = FBShimmeringView(frame: CGRectMake(0, 0, 200, (self.navigationController?.navigationBar.bounds.height)!))
    self.shimmeringView.contentView = navLabel
    self.navigationItem.titleView = self.shimmeringView
    self.shimmeringView.shimmering = true

但是,我无法使图像或UIImage闪烁。这可能吗?谢谢

您为使
UIImageView
闪烁所做的操作是错误的

  • 您没有将微光作为子视图添加到视图中
  • 您没有将
    UIImageView
    设置为微光的
    contentView
  • 使用以下内容更新代码:

    @IBOutlet var imageView: UIImageView!
    
    var shimmer: FBShimmeringView!
    
    override func viewDidLoad() {
        shimmer = FBShimmeringView(frame: self.imageView.frame)
        shimmer.contentView = imageView
        self.view.addSubview(shimmer)
        shimmer.isShimmering = true
    }
    

    您为使
    UIImageView
    闪烁所做的操作是错误的

  • 您没有将微光作为子视图添加到视图中
  • 您没有将
    UIImageView
    设置为微光的
    contentView
  • 使用以下内容更新代码:

    @IBOutlet var imageView: UIImageView!
    
    var shimmer: FBShimmeringView!
    
    override func viewDidLoad() {
        shimmer = FBShimmeringView(frame: self.imageView.frame)
        shimmer.contentView = imageView
        self.view.addSubview(shimmer)
        shimmer.isShimmering = true
    }
    

    我对@Shubhank answer有一个问题,尽管大部分答案都很好

    使用viewDidLoad而不是viewDidLayoutSubviews作为微光帧并没有得到我想要的结果

    所以我更新了代码,一切正常

    @IBOutlet var imageView: UIImageView!
    
    var shimmer: FBShimmeringView!
    
    override func viewDidLayoutSubviews() {
            super.viewDidLayoutSubviews()
    
            shimmer = FBShimmeringView(frame: self.imageView.frame)
            shimmer.contentView = imageView
            self.view.addSubView(shimmer)
            shimmer.shimmering = true
    }
    

    我对@Shubhank answer有一个问题,尽管大部分答案都很好

    使用viewDidLoad而不是viewDidLayoutSubviews作为微光帧并没有得到我想要的结果

    所以我更新了代码,一切正常

    @IBOutlet var imageView: UIImageView!
    
    var shimmer: FBShimmeringView!
    
    override func viewDidLayoutSubviews() {
            super.viewDidLayoutSubviews()
    
            shimmer = FBShimmeringView(frame: self.imageView.frame)
            shimmer.contentView = imageView
            self.view.addSubView(shimmer)
            shimmer.shimmering = true
    }
    
    带微光的Swift 3(1.0.2):

    带微光的Swift 3(1.0.2):


    也可以使用约束,而无需每次在视图布局子视图时初始化“微光”视图:

    let shimmer = FBShimmeringView(frame: .zero)
    view.addSubview(shimmer)
    shimmer.translatesAutoresizingMaskIntoConstraints = false
    let leadingConstraint = NSLayoutConstraint(item: shimmer, attribute: .leading, relatedBy: .equal, toItem: navLabel, attribute: .leading, multiplier: 1, constant: 0)
    let trailingConstraint = NSLayoutConstraint(item: shimmer, attribute: .trailing, relatedBy: .equal, toItem: navLabel, attribute: .trailing, multiplier: 1, constant: 0)
    let topConstraint = NSLayoutConstraint(item: shimmer, attribute: .top, relatedBy: .equal, toItem: navLabel, attribute: .top, multiplier: 1, constant: 0)
    let bottomConstraint = NSLayoutConstraint(item: shimmer, attribute: .bottom, relatedBy: .equal, toItem: navLabel, attribute: .bottom, multiplier: 1, constant: 0)
    view.addConstraints([leadingConstraint, trailingConstraint, topConstraint, bottomConstraint])
    

    也可以使用约束,而无需每次在视图布局子视图时初始化“微光”视图:

    let shimmer = FBShimmeringView(frame: .zero)
    view.addSubview(shimmer)
    shimmer.translatesAutoresizingMaskIntoConstraints = false
    let leadingConstraint = NSLayoutConstraint(item: shimmer, attribute: .leading, relatedBy: .equal, toItem: navLabel, attribute: .leading, multiplier: 1, constant: 0)
    let trailingConstraint = NSLayoutConstraint(item: shimmer, attribute: .trailing, relatedBy: .equal, toItem: navLabel, attribute: .trailing, multiplier: 1, constant: 0)
    let topConstraint = NSLayoutConstraint(item: shimmer, attribute: .top, relatedBy: .equal, toItem: navLabel, attribute: .top, multiplier: 1, constant: 0)
    let bottomConstraint = NSLayoutConstraint(item: shimmer, attribute: .bottom, relatedBy: .equal, toItem: navLabel, attribute: .bottom, multiplier: 1, constant: 0)
    view.addConstraints([leadingConstraint, trailingConstraint, topConstraint, bottomConstraint])
    

    请添加你为闪屏UIImageView所做的代码。我为闪屏ImageView@IBOutlet var ImageView:UIImageView尝试了类似的操作!var shimmer:FBShimmeringView!override func viewDidLoad(){shimmer=FBShimmeringView(frame:self.imageView.frame)shimmer.shimmering=true}@Shubhank我已经添加了下面的代码。请添加为填充UIImageView所做的代码。我为填充imageView@IBOutlet var imageView:UIImageView尝试了类似的方法!var shimmer:FBShimmeringView!override func viewDidLoad(){shimmer=fbsimmeringview(frame:self.imageView.frame)shimmer.shimming=true}@Shubhank我添加了下面的代码。