我試圖創建一個包含多行和多列圖像視圖的網格視圖。就像4行4列的視圖一樣,每個單元格包含圖像視圖。任何人都可以告訴我創建這種視圖的最佳方法嗎? 感謝和最好的問候...關於網格視圖的建議
1
A
回答
1
我是通過UITableView完成的。我做了一個自定義的UITableViewCell,每個單元格包含4個按鈕,用於4列,並調整每個單元格的高度,每頁4行。
2
我會使一個GridView對象從UIView降序。這將有numberOfColumns財產和物品屬性:
@class GridView : UIView {
NSUInteger numberOfColumns;
NSArray *items;
}
@property (nonatomic, assign) NSUInteger numberOfColumns;
@property (nonatomic, copy) NSArray *items;
@end
項陣列將包含你想你的網格視圖中顯示的UIViews。
然後,每次設置numberOfColumns屬性或items屬性時,也可以調用[self setNeedsLayout];在他們的二傳手,即在項目屬性你刪除舊的,添加新的和告知框架需要重新佈局
- (void)setItems:(NSArray *)value {
if (value != items) {
for (UIView *item in items)
[item removeFromSuperview];
[items release];
items = [value copy];
for (UIView *item in items)
[self addsubview:item];
[self setNeedsLayout];
}
}
你layoutSubviews方法將通過項目陣列迭代,他們在正確的位置列數,即像
- (void)layoutSubviews {
[super layoutSubviews];
CGFloat width = [slef frame].size.width/numberOfColumns;
CGFloat height = width;
CGFloat xoffset = 0;
CGFloat yoffset = 0;
for (UIBView *item in items) {
[item setFrame:CGRectMake(xoffset, yoffset, width, height)];
xoffset += width;
if (xoffset >= [self frame].size.width) {
xoffset = 0;
yoffset += height;
}
}
}
我沒有測試的代碼,但它應該打好項目出一個方格,每個項目是方形的。
希望這是一個很好的起點。
相關問題
- 1. 關於網格視圖
- 2. 關於視圖的設計建議
- 3. 關於網關的建議請
- 4. 關於從網格視圖值提取
- 5. 關於單幅大圖像的pannable-zoomable視圖的建議?
- 6. 關於網站安全性的建議
- 7. 關於路由和部分視圖的MVC 3的SEO建議
- 8. 關於圖案/設計的建議
- 9. 關於圖像包裝的建議?
- 10. 關於視圖模型和互連組合框的建議
- 11. 網格視圖內的網格視圖
- 12. HTML,需要關於使用網格來設計「1頁」網站的建議
- 13. 關於AsyncTask的建議
- 14. 關於Glyphicon Bug的建議?
- 15. 關於標籤的建議
- 16. 關於建立拍賣網站的ASP.NET和PHP的建議
- 17. 關於VirtueMart(Joomla!)加拿大支付網關的建議?
- 18. 關於表格間設計關係的建議
- 19. 構建iPhone視圖 - 尋求關於特定問題的幫助+一般建議
- 20. 需要PHP網格建議
- 21. 關於創建容器的建議
- 22. 關於構建PHP類的建議
- 23. 關於創建DBMS的建議
- 24. 網格視圖的編程創建
- 25. 創建網格線並允許用戶打開/關閉網格線視圖
- 26. Extjs 3.2。網格視圖商店相關
- 27. 關於Dev express網格視圖運行時錯誤
- 28. 關於設備上的視頻與替代方案的建議
- 29. 關於創建菜單的建議(附圖所示)
- 30. 關於顯示圖形和圖表的建議