2012-01-18 67 views
1

我正在創建一個數據沉重的應用程序,需要顯示多個數據段並允許選擇該數據的行以獲得更詳細的視圖。該應用程序是註定要用於iPad(不是iPhone)。UITableView與UIWebView

的數據是最適合網格佈局 - 存在的多條信息並沒有必然比其他數據更重要。換句話說,我努力想出一個合理的方式在UITableView的默認單列世界中顯示它。

這裏有個問題:我應該把它吸起來,教我自己什麼看起來是UITableView的子類化和嘗試使用多個視圖來創建多個列的困難任務,或者,我應該只使用一個UIWebView,創建一個傳統的HTML表,並捕獲點擊表的行作爲事件產生新的視圖。我認爲後者的選擇是可能的?我看了一些可用的開源網格類 - 但是,它們在修正器或功能(即能夠像UITableView那樣點擊行)中似乎都有點受限制。

我開始覺得我處理了iPad像一個華而不實的網頁瀏覽器,但是,內部監督辦公室有限的文本格式和表格式選項是感覺相當限制。但是......很難否認HTML是多麼的容易使用---而對於一個偶然的程序員,我卻被懶惰的路線所吸引。

我想獲得什麼是最好的(或接受)練習,人們的意識。

謝謝。

+0

沒有必要繼承UITableView。子類UITableViewCell。另外,就文本和表格格式而言,它實際上只受你的能力限制(請不要被冒犯,我們都在那裏)。您應該強制自己使用本機代碼(webview僅用於顯示html)執行這些操作,以便您瞭解如何執行此操作。 – sosborn 2012-01-18 02:44:52

回答

1

我做了使用STANDAR的tableview和自定義單元格的列視圖,每個單元有儘可能多的按鈕,因爲我需要,每個按鈕具有相同的目標,但不同的標籤,它是我的方式爲他們區分,然後用這個標籤欄這是我的indexPath.row我可以以任何我想要的方式訪問我的數據源(在我的情況下是一個數組)。

如你所說的另一個解決辦法是依靠一些基於網格的視圖類,有很多,this is a quick search on cocoa controls

+0

+1,但視圖標記是可憎的。你應該有一個單元子類的插座到單個按鈕。它是O(1)查找,不會導致衝突,與打字系統更安全,而且只是*更清晰*。 – 2012-01-18 02:47:00

+0

我使用標籤來了解按鈕(單元格)已被按下(在按鈕的操作方法中),因爲每個按鈕指向相同的動作,我想不出任何區別它們的方式,而不是[發件人標籤] ,我真的喜歡這個,因爲它像indexpath.row,有什麼建議嗎? – Ecarrion 2012-01-18 02:55:43

+0

單元格有按鈕的出口,然後你只是做'if(sender == [self button1]){...} else if(sender == [self button2]){...}'。或者如果你不知道有多少個按鈕,那麼把它放在Outlet Collection中,並使用'[outletCollection indexOfObject:sender]'來找出它們的「列」。 – 2012-01-18 06:55:44

1

如果我理解正確的話,你的基本前提是,你需要顯示的可點擊信息網格。當我試圖弄清楚如何在iOS上完成某件事時,我所做的第一件事就是思考蘋果如何做到這一點。

在這種情況下,我會看看蘋果如何實現在iPad App Store的滾動網格。如果您查看通過wireshark等進入iPad的原始數據,您可以確定Apple實際上只是使用UIWebView和大量的HTML/CSS3/webkit動畫來使它看起來像本機。這允許蘋果創建這個非常自定義的用戶界面,此外,它允許他們即時更新整個用戶界面。

同樣,iTunes音樂商店在Mac/PC上簡直是Safari瀏覽器/ WebKit的的專用版本來解析一個巨大的XML文檔轉換成UI。

當然,您可以隨心所欲地找到框架或自定義子類,甚至可以使用自定義的UIButton對象和UIScrollView來實現您自己的解決方案。

+0

我其實更熱衷於使用UIWebView給定的HTML是我知道的 - 子類化UITableView或創建一些自定義UIButton看起來像我很不知道的東西。如果使用UIWebView不是褻瀆,也許我會走這條路。 – user1146403 2012-01-18 02:53:20

+0

這當然是蘋果認可的。最重要的是要注意,您應該努力隱藏您使用用戶的網絡視圖的事實。花大部分時間調整字體上的陰影,並使用CSS3添加細微的紋理和噪點等,並使用webkit動畫順利地動畫一切。 – 2012-01-18 03:17:15