使用paintcode 制作一個星星評分視圖

之前有個朋友有個需求趣兄,需要做一個評分視圖绽左,視圖由5顆星星構成,根據(jù)評分艇潭,星星對應比例填充好顏色拼窥,效果如下:

剛好在學paintcode,所以就嘗試做一個暴区。

具體paintcode 怎么用闯团,就不細講了,可以參看葉孤城大神博客仙粱,他正在翻譯教程房交,大家可以緊跟他,他肯定會很快發(fā)表新文章的伐割。在這里膜拜下葉孤城候味,寫了很多好的文章。

當然也可以去paintcode 的官網查看視頻教程隔心,不過要翻墻白群。有英文的字母,中文的也有硬霍,不過感覺還是看英文的更好理解帜慢。

好了,開始唯卖。

看了這個需求后粱玲,可以把控件分成3層,第一層拜轨,可以想象一下抽减,一張紙上挖了5顆星走了,漏空的橄碾。第二次就是橙色的填充層卵沉,第三層就是背景層了。

1.打開paintcode法牲,繪制一個漏空的星星:


操作為:創(chuàng)建canvas 大小30 * 30史汗;修改名稱為Star;繪制一個矩形 30 * 30拒垃;繪制一個星星 30 * 30 淹办,星星弧度改為55 %;選中矩形和星星恶复,點擊difference怜森,變成bezier 曲線。

接下來谤牡,我們添加一個新的canvas副硅,繪制我們需要的控件


操作為:創(chuàng)建星星評分canvas 150 * 30;創(chuàng)建背景矩形 150 * 30翅萤;創(chuàng)建填充矩形 100 * 30恐疲;放置5個第一步中繪制的漏空的星星到canvas 上,5個星星組成一個group套么;然后就可以看到我們想要的視圖基本已經出來了培己。

下一步:將我們畫好的生成style文件加入到我們的工程中;

先創(chuàng)建一個新的空白工程,添加一個自定義的類ScoreStarsView 繼承自UIView;


操作為點擊paintcode 的file- export 生成stylekit文件放到我們新建的工程下胚泌,然后打開xcode 省咨,添加生成是ScoreStarsKit 文件。然后在自定義的ScoreStarsView 類中導入kit玷室,然后在drawRect 進行繪制零蓉。最后在storyboard中添加uiview ,把這個view的類改成ScoreStarsView穷缤;然后我們用模擬器運行敌蜂,效果如下:


看,基本就出來效果了津肛。不過我們希望它的自定義程度更高點章喉,所以我們先來把三層視圖的顏色作為參數(shù)創(chuàng)建。


操作為身坐,三個顏色分別對應起來秸脱,frontColor,fillColor,backColor,這三個顏色均設置為parameter,方便我們進行繪制時自定義掀亥,然后重新export撞反,快捷鍵為command + R;回到xcode 發(fā)現(xiàn)報錯了搪花,因為scorestarskit 代碼已經改變了遏片,我們使用三個顏色進行創(chuàng)建,運行之后看看效果撮竿,顏色變了吮便。

接下來,我們希望它使用更方便幢踏,那么我們來把這三個顏色做成property 方便在storyboard中創(chuàng)建髓需;


現(xiàn)在可以看到,已經可以在storyboard中看到效果房蝉,而且可以隨心所欲改變顏色了僚匆,那么我們還有一個需求微渠,就是評分是變化的,所以填充的多少也是變化的咧擂,我們來看下一步逞盆;


操作為:添加一個value 的fraction ,然后添加一個width 的expression 松申,讓width = value * 150云芦;然后拉一個線到fillRect 的寬度上,這樣value 改變贸桶,我們就看到width 跟著改變了舅逸,然后重新export,回到xcode 添加一個新的property ?value皇筛,重新修改代碼琉历,就可以在storybord 中設置value 然后看到評分不同,星星填充的也就不同了设联。

現(xiàn)在還有一個問題善已,我們看到畫的三個view 的frame 明顯不同可是,我們看到的師徒除了顏色不一樣离例,大小都是一樣的换团,原因很簡單,生成的代碼的大小都是寫死的宫蛆;下面我們來看怎么讓他大小跟著改變艘包。


操作為:為了讓整體有個比例,改變畫布大小為200 * 40耀盗,同時把三層view 均重新設置大邢牖ⅰ;添加一個frame叛拷,讓底層view 和 最上層的漏空星星跟隨frame 變化舌厨,類似于自動布局的約束;重新export忿薇;我們可以看到fillRect 的約束是不對的裙椭,他的寬度和高度寫死了,我們自己來調整代碼署浩,讓它的寬度隨value 和視圖的寬度變化揉燃,讓它的高度隨視圖的高度變化。就這樣筋栋,一個評分用的星星視圖就完成了炊汤。

當然這個還有一些問題,當背景不是純色的時候,就會稍顯無力了抢腐,希望大家可以想出更好的設計方案姑曙,此文拋磚引玉,同時希望大家多多支持氓栈,多多點贊渣磷!

demo下載地址?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市授瘦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌竟宋,老刑警劉巖提完,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丘侠,居然都是意外死亡徒欣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門蜗字,熙熙樓的掌柜王于貴愁眉苦臉地迎上來打肝,“玉大人,你說我怎么就攤上這事挪捕〈炙螅” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵级零,是天一觀的道長断医。 經常有香客問我,道長奏纪,這世上最難降的妖魔是什么鉴嗤? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮序调,結果婚禮上醉锅,老公的妹妹穿的比我還像新娘。我一直安慰自己发绢,他們只是感情好硬耍,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著朴摊,像睡著了一般默垄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上甚纲,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天口锭,我揣著相機與錄音,去河邊找鬼。 笑死鹃操,一個胖子當著我的面吹牛韭寸,可吹牛的內容都是我干的。 我是一名探鬼主播荆隘,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼恩伺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了椰拒?” 一聲冷哼從身側響起晶渠,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎燃观,沒想到半個月后褒脯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡缆毁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年番川,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脊框。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡颁督,死狀恐怖,靈堂內的尸體忽然破棺而出浇雹,到底是詐尸還是另有隱情沉御,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布箫爷,位于F島的核電站嚷节,受9級特大地震影響,放射性物質發(fā)生泄漏虎锚。R本人自食惡果不足惜硫痰,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窜护。 院中可真熱鬧效斑,春花似錦、人聲如沸柱徙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽护侮。三九已至敌完,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間羊初,已是汗流浹背滨溉。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工什湘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晦攒。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓闽撤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脯颜。 傳聞我的和親對象是個殘疾皇子哟旗,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內容