欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

iOS中無卡頓同時使用圓角、陰影和邊框的實現(xiàn)-創(chuàng)新互聯(lián)

這篇文章主要介紹iOS中無卡頓同時使用圓角、陰影和邊框的實現(xiàn),文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)是一家專業(yè)提供吉安企業(yè)網(wǎng)站建設,專注與網(wǎng)站設計、網(wǎng)站建設、H5高端網(wǎng)站建設、小程序制作等業(yè)務。10年已為吉安眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

在 iOS 開發(fā)中,最怕看到設計稿里圓角、陰影和邊框同時出現(xiàn),這三兄弟簡直就是性能殺手。

優(yōu)化的方法百度一下有很多,雖然方法不同但是原理都一樣。

分享一個我自己一直使用的方法:在一個 View 里只應用一種效果,然后通過組合的方式達到效果。

override init(frame: CGRect) {
  super.init(frame: frame)

  imageView = UIImageView(image: UIImage(named: "img"))
  imageView.layer.cornerRadius = 14
  imageView.layer.masksToBounds = true
  backgroundView = imageView

  shadowView = ShadowView()
  shadowView.layer.cornerRadius = 20
  shadowView.applyShadow(.black, CGSize(width: 0, height: 15), 0.2, 40)
  insertSubview(shadowView, belowSubview: imageView)

  contentView.layer.cornerRadius = 14
  contentView.layer.borderWidth = 1
  contentView.layer.borderColor = UIColor.orange.cgColor
  contentView.layer.masksToBounds = true
}

iOS中無卡頓同時使用圓角、陰影和邊框的實現(xiàn)

層次結構:

  • contentView: 描繪邊框,放在最上層。

  • imageView: 顯示圓角,放在中間,用于背景圖。

  • shadowView: 顯示陰影,放在最底層。代碼很簡單,只是封裝了一下陰影參數(shù):

class ShadowView: UIView {
  private var shadowColor: UIColor?
  private var shadowOpacity: CGFloat = 1
  private var shadowOffset: CGSize = CGSize(width: 0, height: 3)
  private var shadowBlur: CGFloat = 6

  override func layoutSubviews() {
    super.layoutSubviews()

    updateShadow()
  }

  func applyShadow(_ color: UIColor?, _ offset: CGSize, _ opacity: CGFloat, _ blur: CGFloat) {
    shadowColor = color
    shadowOffset = offset
    shadowOpacity = opacity
    shadowBlur = blur

    updateShadow()
  }

  private func updateShadow() {
    layer.shadowColor = shadowColor?.cgColor
    layer.shadowOffset = shadowOffset
    layer.shadowOpacity = Float(shadowOpacity)
    layer.shadowRadius = shadowBlur * 0.5
    layer.shadowPath = UIBezierPath(roundedRect: self.bounds, cornerRadius: layer.cornerRadius).cgPath
  }
}

分開單獨繪制速度很快,使用 UICollectionView 進行滾動測試,生成的 Cell 數(shù)量是 1 萬個。

測試機器是 5s + iOS 12.4.4,快速滑動無任何卡頓。

以上是“iOS中無卡頓同時使用圓角、陰影和邊框的實現(xiàn)”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)網(wǎng)站建設公司行業(yè)資訊頻道!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站名稱:iOS中無卡頓同時使用圓角、陰影和邊框的實現(xiàn)-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://chinadenli.net/article0/doijio.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、用戶體驗企業(yè)建站、Google、網(wǎng)站策劃定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司