Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
example of a custom tableviewcell
-
You can add subviews to the
content_view
attribute of an instance ofui.TableViewCell
. This is mentioned in the documentation but not directly, it only tells you that views can be added this way, not why you would do it. Also, Dann, for the author of the code above you could find the username of the poster. (I care only because I made it.) -
I couldn't find the username. I had this snippet I'm my 'forum snippets' folder to learn from. I tried searching the forum posts for you. But couldn't :( sorry.
-
That's fine. It was a pretty quick code anyway.
-
@tachijuan Don't know if this helps you...
'Classes' - SettingsSheet
It's switches in a cell... but you could add labels and an image instead by the same method.
-
I think that will do it. Have a long flight tomorrow so I can play with this. Thanks for the help fellas.
-
OK - I was able to make it work by creating a subview and adding the text/image before I added it to the tableviewcell. Still not sure how I would change it after the fact. I tried using the "name" property as the way to refer to the subview. How do I refer to the subviews after I've added them to the tableviewcell?
Sorry for the rookie questions, but I'm still wrapping my head around this one.
-
@tachijuan This is rather brute force, but works. Add a list of cells as a public property, and append the cells as they are created... see updated SettingsSheet class.
-
Cool. That is brute force. Is there no way to give the subview a "name" property so that I can do something like:
cell = ui.TableViewCell() tl = ui.TextLabel() tl.name = "hits" cell.add_subview(tl) cell['hits'] = "2"
Or something like that? The docs seem to say that you can but for some reason it's not working for me.
-
@tachijuan A ui.View can be used like a dict of it's named subviews... but I think this little test script shows that a ui.TableViewCell doesn't support that... try it with View and then TableViewCell. It looks like subviews[n] is as good as it gets.
import ui v = ui.View() #v = ui.TableViewCell() b = ui.Button() b.name = 'btn' v.add_subview(b) print v['btn'].name
-
@techijuan Ok, the trick is to add the subviews to the cell's content_view not the cell... then it works to use content_view like a dict.
P.S. ListDataSource also has an (undocumented ?) tableview attributute that is useful for upwards navigation
-
aha!
Cool. Thank you!