您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機(jī)編程>

實(shí)現(xiàn)iOS-Widget的方法詳解

大?。?/span>0.3 MB 人氣: 2017-09-25 需要積分:1

  一、Widget總覽

  Widget 是 iOS8 推出第一版,在iOS 10 進(jìn)行大幅度的優(yōu)化

  Widget可以讓用戶更快地訪問到其感興趣的內(nèi)容,官方的說法是用來呈現(xiàn)功能比較簡單的,交互性不強(qiáng)的東西,在不打擾或者中斷用戶使用當(dāng)前應(yīng)用的前提下完成自己的功能點(diǎn)。對于這個說法,國內(nèi)的開發(fā)者表示呵呵,因?yàn)閹缀跛械?Widget都綁定了對應(yīng)的點(diǎn)擊事件

  二、Widget代碼實(shí)現(xiàn)

  因?yàn)?Widget 屬于單獨(dú)的進(jìn)程,因此需要再新建一個target:File -》 New -》target

  實(shí)現(xiàn)iOS-Widget的方法詳解

  初次構(gòu)建 UI 時,運(yùn)行 Widget 后會發(fā)現(xiàn),Widget左側(cè)距離屏幕左側(cè)始終有一段距離,導(dǎo)致效果不佳,可以通過下面的代理方法消除間距

  // 取消widget默認(rèn)的inset,讓應(yīng)用靠左

  - (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets {

  return UIEdgeInsetsZero;

  }

  Widget 的收起、展開 則是通過這個代理方法:

  /**

  activeDisplayMode有以下兩種

  NCWidgetDisplayModeCompact, // 收起模式

  NCWidgetDisplayModeExpanded, // 展開模式

  */

  - (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize {

  if(activeDisplayMode == NCWidgetDisplayModeCompact) {

  // 尺寸只設(shè)置高度即可,因?yàn)閷挾仁枪潭ǖ?,設(shè)置了也不會有效果

  self.preferredContentSize = CGSizeMake(0, 110);

  } else {

  self.preferredContentSize = CGSizeMake(0, 310);

  }

  }

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?