我試圖創建一個包含多行和多列圖像視圖的網格視圖。就像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. 關於網格視圖的Yii對齊
- 5. 關於從網格視圖值提取
- 6. 關於單幅大圖像的pannable-zoomable視圖的建議?
- 7. 關於刮JavaScript重網站的建議
- 8. 關於網站安全性的建議
- 9. 關於路由和部分視圖的MVC 3的SEO建議
- 10. 關於CSS圖像Sprite的建議
- 11. 關於jQuery圖像縮放的建議
- 12. 關於繪製圖表的建議
- 13. 關於圖像包裝的建議?
- 14. 關於圖案/設計的建議
- 15. 關於圖像存儲的建議
- 16. 關於視圖模型和互連組合框的建議
- 17. 關於使用Caliburn.Micro MVVM進行視圖導航的建議WPF
- 18. 網格視圖內的網格視圖
- 19. 網格視圖setOnItemClickListener()不適用於自定義網格視圖
- 20. HTML,需要關於使用網格來設計「1頁」網站的建議
- 21. 創建自定義網格視圖有些不可思議
- 22. 關於Glyphicon Bug的建議?
- 23. 關於款式的建議
- 24. 關於MySQL表的建議
- 25. 關於標籤的建議
- 26. 關於AsyncTask的建議
- 27. 關於抽象的建議
- 28. 關於建立拍賣網站的ASP.NET和PHP的建議
- 29. 關於購買模型設計的建議(與網關交互)
- 30. 關於VirtueMart(Joomla!)加拿大支付網關的建議?