iOS 實(shí)現(xiàn)簡單九宮格

通過向mainView添加sunView來模擬實(shí)現(xiàn)九宮格數(shù)據(jù)的添加。

想要實(shí)現(xiàn)九宮格,主要在于每個sunView的X,Y值的計(jì)算,寬、高自定義即可。

添加sunView的寬和高分別為:vieW,viewH。

Untitled.png

列間距:colMargin,行間距:rowMargin。

X坐標(biāo)的計(jì)算:

由上圖可知每個sunView的X坐標(biāo)為:viewW+colMargin的倍數(shù)。

舉個??:例如1的X的坐標(biāo)為:0*(viewW+colMargin)。2點(diǎn)X坐標(biāo)1*(viewW+colMargin)。其他以此類推。

倍數(shù)col(系數(shù))的獲得:

col = index % cols;index為在mainView中含有的sunView的個數(shù),cols為你所需要實(shí)現(xiàn)效果的列數(shù)。

說明:當(dāng)mainView中不含有任何sunView的時候,index的值為零,當(dāng)他對cols取余的時候余數(shù)為零,對應(yīng)的系數(shù)為零,所對應(yīng)的X值為零,即1的X坐標(biāo)為0。繼續(xù)添加,此時已有一個sunView,index的值為1,對cols取余的值為1,此時X值為1*(viewW+colMargin),即2的坐標(biāo)為1*(viewW+colMargin)。其他以此類推。

NSUIntegercol = index % cols;CGFloatviewX = col * (viewW + colMargin);

Y坐標(biāo)的計(jì)算:

由上圖可知每個sunView的Y坐標(biāo)為:viewW + colMargin的倍數(shù)。思想類似于Y坐標(biāo)的計(jì)算,這里不再贅述。

倍數(shù)row(系數(shù))的獲得:

row = index / cols。

NSIntegerrow = index / cols;CGFloatviewY = row * (viewH + rowMargin);

完整代碼地址

Github:iOS-sudoku

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容