我在github的第一個Repo-GCTagList

已經可以在CocoaPods & CocoaControls找到GCTagList
使用上有任何建議或問題可以直接在github上給我建議, 謝謝

在訂完今年的年度目標後, 除了正在並行的讀書會之外, 另一個就是在github上提交自己的lib; GCTagList 雖然內容很粗糙, 不過也算踏出了第一步, 希望之後會越來越好。

關於TagList, 一開始是因為專案上有這個需求, 希望可以像iPhone的Mail App的收件者或寄件者的tag list樣式; 不過在網路上找的lib大部分都要調整, 在維護上個人覺得不太方便, 加上專案之後要給別人維護, 如果這一塊寫的很醜之後很煩, 所以想了想就抓了一個來參考, 在依照需求來做設計, 整理出來就是GCTagList。

GCTagList

模仿iPhone’s Mail App中所呈現的tag list樣式

特點

taglist有幾個比較特殊的地方, 分別是:

第一行支援LeftMargin

主要是解決如果再Taglist前面會需要文字的話, 不會因為需要配合文字就限制住Taglist的寬度。

最大行數

當內容很多的時候, 可能因為list內的Taglabel過多造成行數過多(高度過高), 需要讓user一直捲動影響到App的操作。

自動調整高度

這就不多解釋了, 就是拿來Resize用 …

ARC

然後就是最近比較常使用的arc, 因為這次的專案支援arc, 所以是以arc為出發點在處理沒有支援arc的專案。

然後GCTagList一些想法是平時觀察UITableView的心得, 自己所做的一些實作, 所以Reuse跟identifire等東西相信有注意到的人應該都不陌生。(命名的方式也有一些雷同)

使用方式

在專案需要加入 QuartzCore.frame, 並加入 class & assets的resoure bundle。

add taglist to your view
1
2
3
GCTagList* taglist = [[GCTagList alloc] initWithFrame:CGRectMake(0, 0, 320, 200)];
taglist.dataSource = self;
[self.view addSubview:taglist];

接著主要實作GCTagListDataSource的2個Mehtod

implemention GCTagListDataSource require method
1
2
- (NSInteger)numberOfTagLabelInTagList:(GCTagList *)tagList;
- (GCTagLabel*)tagList:(GCTagList *)tagList tagLabelAtIndex:(NSInteger)index;

最後再呼叫CGTagList的reloadData

let your tagist reloadData
1
[taglist reloadData];

在與taglist的互動方面, 我也設計了2個方式點擊方式

  • 點擊TagLabel
  • 點擊TagLabel’s accessoryButton

可以在GCTagListDelegate找到對應的使用方式。

後續的調整

  • 區段性reload、insert和delete (嗯…就是要學)
  • 客製化AccessoryButton
  • Taglist顏色的調整 … 是否要使用漸層等等

目前想到的也就這些吧 … 有想法的可以一起討論一下

Reference

之後

有個小小的想法, 就是把他放到cocoacontrolscocoapods上 XD, 希望不會寫的太爛被打臉阿~

也要感謝一下馬克(我現在的PM)跟Eikiy(專案合作的創意)以及Jeremy(公司的大Boss), 給了很多的概念跟支援, 才會有這個lib的誕生.

最後附上github repo:GCTagList

最近

嗯, 小弟我把它丟上cocoacontrols了, 丟上去的方式還挺簡單的, 有兩種方式

  • github account, 從github上抓取
  • 其他方式

我是使用github的方式, 將你的lib URL丟給它後它會抓一些基本的資訊, 然後會需要填一些內容&keyword (for cocoacontrols search); 提交之後要等待審核(?, 會需要一段時間, 我大該排了一個禮拜吧, 如果沒問題它就會直接出現在cocoacontrol裡面啦~

今天下午也嘗試了提交到cocoapods, 不過不知道自己做的正不正確 … (Orz, 英文太破) … 如果有提交成功, 再來補充囉。

最後額外感謝Aaron Haung, 今天下午跟他詢問Roibbon p的效果該怎麼做, 沒想到他跟我說給我一小時, 我寫個外掛給你~真是揪甘心, 請受小弟一拜~

也附上網址大家有需要可以去抓囉。

Comments