2013-10-16 39 views
0

對於rubymotion和Promotion,我很新,所以對不起,如果問題是一個愚蠢的問題:)我找不到任何信息如何操縱單元格的高度點擊它後。有人知道如何做到這一點?非常感謝如何操作ProMotion :: Table :: Cell的高度

class TimeOffsScreen < ProMotion::TableScreen 

    def table_data 
    TimeItem.all.map do |item| 
     { 
     title: item.name, 
     action: :open_time_item, 
     arguments: { item: item }, 
     editing_style: :delete, 
     height: 90 
     } 
    end 
    end 

    def open_time_item(item) 
    # Set height of this table cell 
    end 

end 

回答

2

目前沒有很好的方法來做到這一點。一種可以完成的方法是訪問散列中的數據,然後刷新表數據。

順便說一句,我注意到你的代碼中有一個錯誤。您需要提供包裝單元格的數組部分。

我已經舉了一個如何在這裏做的例子,但你需要驗證它是否工作。

def table_data 
    @time_items ||= TimeItem.all 
    [{ 
    cells: @time_items.map do |item| 
     { 
     title: item.name, 
     action: :open_time_item, 
     arguments: { item: item }, 
     editing_style: :delete, 
     height: item.height || 90 
     } 
    end 
    }] 
end 

def open_time_item(item) 
    item.height = 180 # .height can be a temporary attr_accessor with no persistence 
    update_table_data 
end 
+0

Thanks Jamon!這是工作。感謝您的錯誤!這個錯誤並沒有出現在我的實際代碼中,我爲了這個例子對它進行了剝離。如果我可以提一個簡單的問題,是否有可能通過動畫使它更大?我試圖在open_time_item方法中獲取TableCell實例。我想我不能使用促銷這個?非常感謝! –

+0

沒問題,很高興我能幫到你。動畫的問題實際上並不是ProMotion特有的。你需要檢測你的UITableViewCell,然後從那裏運行你的動畫。一種可能的方法是使用[RMQ](http://infinitered.com/rmq/)將事件綁定到您的單元格並對它們進行動畫處理。 –