我剛剛開始在RubyMotion中使用Rails中的歷史記錄。我有一個簡單的應用程序與兩個意見。第一個視圖是一個tableView,它列出了一個'categories'數組。每個類別都有詳細視圖。我最初設置的細節視圖也是一個tableView,但我改用UILabel,因爲每個類別只有一小段靜態文本。我着眼於在細節中使用單行表格,並通過內容更改單元格高度,但決定因爲我將只需要一個單元格......它可能是不恰當地使用表格,並更好地使用UILabel(到目前爲止正如我可以告訴的是對於靜態文本......不僅僅是一個「標籤」)。對此的意見或想法是非常受歡迎的。如何在ruby運動中創建textView?
category_view_controller.rb
所以,在我現有的category_view_controller我有以下方法推動時,從類別視圖控制器類的列表中選擇一個行的細節視圖控制器。因爲現在我正在用app_deligate.rb中的屬性(標籤和描述)靜態創建我的類別。這在SIM卡中正常工作。
def tableView(tableView, didSelectRowAtIndexPath:indexPath)
case indexPath.section
when 0
cat, label, desc = Categories.categories_list[indexPath.row]
detailsVC = DetailViewController.alloc.initWithStyle(UITableViewStyleGrouped, category:cat, label:label, description:desc)
navigationController.pushViewController(detailsVC, animated:true)
end
tableView.deselectRowAtIndexPath(indexPath, animated:true)
end
DetailViewController.rb。
該控制器繼承自UITableViewController。下面的代碼已經被修改,以擺脫tableView ...這就是爲什麼沒有表(你可以看到我已經開始轉換到UILabel)。這個加載也很好,包含我在add_deligate文件中設置的詳細文本。
class DetailViewController < UITableViewController
def initWithStyle(style, category:cat, label:label, description:desc)
initWithStyle(style)
@category = cat
@description = desc
@label_text = label
self
end
def viewDidLoad
super
self.view.backgroundColor = UIColor.redColor
@label = UILabel.alloc.initWithFrame([[20, 50], [280, 80]]).tap do |label|
label.translatesAutoresizingMaskIntoConstraints = false
label.text = @description
label.lineBreakMode = UILineBreakModeTailTruncation
label.numberOfLines = 0
label.sizeToFit
label.textColor = UIColor.colorWithHue(0.0, saturation:0.0, brightness:0.40, alpha:1.0)
self.view.addSubview(label)
end
end
end
我的困惑
我不知道如何去去除的tableView和剛剛經歷的UILabel使用簡單的靜態文本。或者,也許還有更好的辦法。
我知道我需要在調用details_view_controller的categories_views_controller中更改此行。這一行仍然引用UITableViewStyleGrouped ...並且不應該是因爲沒有樣式表。
detailsVC = DetailViewController.alloc.initWithStyle(UITableViewStyleGrouped, category:cat, label:label, description:desc)
我試着簡單地刪除'initWithStyle ...但是,這打破了應用程序。
detailsVC = DetailViewController.alloc.init(category:cat, label:label, description:desc)
我還需要details_view_controller以不<的UITableViewController繼承。這看起來就像刪除或更改繼承一樣簡單。我試過......但是,這打破了應用程序。我懷疑這些可能工作,一旦我正確地從類別view_controller中的細節調用中刪除'UITableViewStyleGrouped'。
class DetailViewController
和
class DetailViewController < UIViewController
此外,當我在details_view_controller內部viewDidLoad方法設置背景顏色不具有任何影響。不知道爲什麼。
self.view.backgroundColor = UIColor.redColor
因此,回顧一下。根視圖是靜態類別的tableView,每個類別都有一個詳細視圖。點擊列表中的類別時,將加載詳細視圖。細節視圖是一個簡單的視圖,UILabel元素顯示該類別的詳細描述。
我希望有人能指點我學習動作的方向,並使這段代碼按預期工作。謝謝
謝謝Jamon。你爲我回答了兩個單獨的帖子。我肯定會研究可可觸摸。你建議我讀什麼?我假設文檔...但是,您在答案中的文字留下了您推薦的內容。 – hellion 2013-04-21 06:58:26
我看到你的編輯內容。謝謝你的投入! – hellion 2013-04-21 06:59:43
你打賭。如果你有iPhone或iPad,我會在iBook上推薦iOS和Cocoa編程指南。他們自由,冗長,但值得一看。此外,有關iTunes U的Paul Hegarty講座很有價值。通過ProMotion教程和屏幕錄像看看 - 你會在那裏找到很多東西。用RubyMotion玩得開心 - 這太棒了! – 2013-04-21 07:05:55