我不想重复使用故事板和海关单元
在我的应用程序中,我有一个包含 12 种自定义单元格类型的表格视图。 我在故事板中设计了每一个。 总的来说,一切正常 - 感谢您的教程:) 我的问题是,我在每个单元格中都有单独的样式和附加数据 - 因此我不希望重复使用它们。 如何从故事板生成单独的自定义单元格以在 -
tableView:cellForRowAtIndexPath:indexPath?
中提供它? 有什么建议吗? 谢谢 多米尼克
补充道:
newCell = [tableView dequeueReusableCellWithIdentifier:cellType];
cell = newCell;
[cell styleWithElement:element andResubItem:resubItem];
我的问题是,我需要另一种方法来从故事板创建自定义样式的单元格,而不是上面引用的方法 - 我没有 XIB,上面的方法是我知道创建单元格的唯一方法。 是否可以通过上述方式创建单元格类型然后复制单元格的解决方案?有没有办法复制单元格对象?
In my app I have a table view with 12 types of custom cells.
I designed each within the storyboard.
In general everything works fine - thanks to your tutorials :)
My problem is, that I have individual styles an additional data in each cell - therefore I don't want them to be reused.
How can I generate a individual custom cell from storyboard to provide it in the -
tableView:cellForRowAtIndexPath:indexPath?
Any suggestions?
Thanks
Dominic
Added:
newCell = [tableView dequeueReusableCellWithIdentifier:cellType];
cell = newCell;
[cell styleWithElement:element andResubItem:resubItem];
my problem is, I need another way to create a custom-styled cell from the storyboard than the quouted above - I have no XIB and the above way is the only way I know to create my cell.
Could it be a solution to create a celltype once the above way and then copy the cell? Is there a way to copy a cell-object?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以每次生成一个随机小区 ID,这样就不会重复使用。
但是,这对于滚动性能和内存消耗来说并不是很好,因此请考虑实际重用单元格(即想出一种方法来替换其中的数据)。
编辑:
您始终可以将视图从一个视图复制到另一个视图,沿着这些思路:
您可能还需要将 myCell 的框架调整为与 newCell 的框架相同,并且如果 newCell 是任何事件的操作目标(例如单击单元格内的控制元素会触发单元格类中定义的某些操作)您还需要将它们重新分配给 myCell。
Edit2:
要移动操作,您可以执行以下操作:
将新单元格替换为目标 - 并确保它实现所有必要的选择器(或者您可以放置一个新的选择器)。上面的代码将替换 UIControlEventTouchUpInside 的目标 - 您可以使用您需要的目标(或使用 allControlEvents 枚举控件使用的目标)。
You can generate a random cell ID each time so it won't be reused.
However, that would not be very good for scroll performance and memory consumption, so consider actually reusing the cells (i.e. come up with a way to replace data in them).
Edit:
you can always just copy the views from one to another, something along these lines:
You may also need to adjust the frame of myCell to be the same as that of newCell, and if newCell is an action target for any events (e.g. clicking a control element within the cell triggers some action defined in the cell class) you'll need to reassign those to the myCell, too.
Edit2:
To move actions you could do something like this:
Substitute your new cell for the target - and make sure it implements all the necessary selectors (or you can put a new selector). The code above will replace targets for UIControlEventTouchUpInside - you can use the ones you need instead (or use allControlEvents to enumerate the ones used by a control).