上篇講了一些對尺寸的簡單適配(縮放適配)
我們這裡來講一些對於需求而言的「適配」
1.案例一:如果版本一需要四行檢視,版本二需要二行檢視,怎麼用最少的**和邏輯判斷去實現?
這裡可以用到uiview的tag:
@property(nonatomic) nsinteger tag; // default is 0
- (nullable __kindof uiview *)viewwithtag:(nsinteger)tag; // recursive search. includes self
@property(nonatomic,readonly,copy) nsarray<__kindof uiview *> *subviews;
實現:
#if is_second_ver == 1
for (int i =1; i < 5; i++)
#endif
用乙個巨集定義來控制,另外需要設定這些需要「適配」的檢視的tag為規則的101 - 105
經過乙個遍歷就可以實現了,幾乎沒有邏輯判斷和複雜的**。
2.案例二:如果有一排的按鈕,並且有著不同的title,根據安排顯示出來
突然一想,覺得有點蛋疼,這個不是數學的組合排序嗎,坑爹,有n種可能,但是細想,如果順序一致,就非常好辦了,只要參考上面的思想即可
首先拿乙個陣列來獲取存在的按鈕:
[_existbuttonarray removeallobjects]; // 每次操作前保證陣列為空
if (判空1) ];
}if (判空2)) ];
}if (判空3)) ];
}if (判空4)) ];
}if (判空5)) ];
}
這裡舉例是5個,如果是不確定,可以通過乙個迴圈遍歷即可
根據陣列內資料結構來構建檢視布局:
[_existbuttonarray enumerateobjectsusingblock:^(id obj, nsuinteger idx, bool *stop)
}];
同樣地,其他uiimageview uiview等等都可以通過這樣的形式實現
python程式設計技巧2
模組化 這是我們程式設計師夢寐以求的,通過模組化可以避免重複的製造輪子。同時模組讓你能夠有邏輯地組織你的python 段。把相關的 分配到乙個 模組裡能讓你的 更好用,更易懂。模組也是python物件,具有隨機的名字屬性用來繫結或引用。簡單地說,模組就是乙個儲存了python 的檔案。模組能定義函式...
C 程式設計技巧學習 2
二,程式的格式 空行的使用 規則2 1 1 在每個類宣告之後 每個函式定義結束之後都要加空行。規則2 1 2 在乙個函式體內,邏揖上密切相關的語句之間不加空行,其它地方應加空行分隔。單行的格式 單行的格式 規則2 2 1 一行 只做一件事情,如只定義乙個變數,或只寫一條語句。這樣的 容易閱讀,並且方...
C老鳥程式設計技巧總結 2
5 複雜指標的宣告 規則總結 1 去掉變數名就型別 去掉乙個 就是指向記憶體單元的型別 2 強調什麼將名子和強調的東東括最裡層 再將其次強調的東西括外面一層 最後強調的括最外層 型別最後加在外面 如 int i 2 指向 int 2 的指標 強調指標 int i 2 型別為 int 的陣列 強調陣列...