weex中UISegmentControl實現及遇到的問題

来源:https://www.cnblogs.com/scorpiozj/archive/2018/11/20/9991799.html
-Advertisement-
Play Games

在最近主導的一個項目中,App端的實現使用了weex。通過近一個月的實踐,我們發現如果對於人機交互較少的App,即使較少前端經驗的人也能迅速進入開發(當然需要一定時間 才能上手weex)。在開發的時候,我們使用了weex-ui庫,但也發現其中有一些控制項沒有實現,如UISegmentControl。於 ...


在最近主導的一個項目中,App端的實現使用了weex。通過近一個月的實踐,我們發現如果對於人機交互較少的App,即使較少前端經驗的人也能迅速進入開發(當然需要一定時間 才能上手weex)。在開發的時候,我們使用了weex-ui庫,但也發現其中有一些控制項沒有實現,如UISegmentControl。於是抽空實現了一個,效果如下:

weex UISegmentControl

個人感覺和iOS原生的控制項很相似了,詳細的實現參見 SegmentControl
在使用的時候,可以設置:

  • items: Array,用於展示控制項上的名字
  • initIndex: Number,初始選中的item次序
  • 當需要響應點擊事件的時候,需要添加 @zzhSegmentClicked即可。

需要指出的是,SegmentControl的圓角,色塊和文字選中/未選中的顏色,目前都是hard code,無法通過props傳參來自定義。這也是我希望通過開源後,大家可以一起幫忙改進。先說下我的思路,Vue中修改式樣可以通過綁定 Class 和 style 的方式。在當前的情況下,需要自定義圓角、色塊和文字,因此綁定Class是不可行的。那綁定style的話,要傳一個對象:對於只需要自定義圓角的情形,也需要把其他屬性值也寫入。查看現有的class實現,可以發現需要的style類型有三種:最左邊,最右邊和其他,這樣書寫會非常冗長,也不友好。

因此,理想的實現,最好和原生一樣,如iOS中傳一個tintColor就直接修改選中的顏色。因為對前端不熟悉並且項目時間緊,沒能深究下去。希望能在這裡找到答案或者解決思路。

 

本文首發於: weex中UISegmentControl實現


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • memcached常用語法及java使用方式 Author:SimpleWu Memcached 存儲命令 Memcached set 命令用於將 value(數據值) 存儲在指定的 key(鍵) 中。 如果set的key已經存在,該命令可以更新該key所對應的原來的數據,也就是實現更新的作用。 M ...
  • 創建位置表,並且插入測試數據 /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 80011 Source Host : localhost:3306 Source Database : t ...
  • DDL Data Definition(重點) (n. 定義;[物] 清晰度;解說)用於定義數據的結構,創建,修改,刪除資料庫對象 一、表的增刪改查 1、創建表:CREATE TABLE temp AS (SELECT * FROM emp WHERE 1==2) 創建表結構。 CREATE TAB ...
  • 一、SQL的多表查詢: 1、左連接和右連接(不重要一方加(+)) SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHERE e.deptno(+)=d.deptno ; (+)在等號左邊是右連接,反之左連接。 2、交叉 ...
  • memcached(1)簡介及環境安裝 author:SimpleWu 簡介 Memcached是一個自由開源的, 高性能 , 分散式 記憶體對象緩存系統。 Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric為首開發的一款軟體。現在已 ...
  • 一. 集合對象概述 這裡的集合是string類型的無序集合,在集合對象中集合成員是唯一的,這就意味著集合中不能出現重覆的數據。集合是通過哈希表實現的,集合中最大的成員數為 232-1 (4294967295, 每個集合可存儲40多億個成員)。集合對象的編碼可以是intset或者hashtable。 ...
  • plist關鍵欄位: CFBundleIdentifier:應用包名、唯一標識 CFBundleVersion:文件版本號,可以每次發版本遞增 CFBundleShortVersionString:appstore顯示版本號,每次app store發版遞增 CFBundleName:預設設置是等同於 ...
  • iOS 用KVC設置結構體 在Fundation中KVC提供的鍵值路徑只能訪問對象,不能訪問結構體。這很不面向對象。 執行下麵的語句將會報錯: 實現這個功能是很簡單的:首先NSValue的結構體信息,然後拿到關於這個結構體如何取值和賦值的信息。有了這兩條信息就可以了。 最方便的數據結構就是字典,Ke ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...