我需要在iPhone上创建一个水平滚动图像库的视图。问题是这个库有可能有100到1000个需要呈现的图像,所以我想避免一次将它们全部加载到一个UIScrollView中并破坏性能。我需要创建一个视图来循环视图对象(如UITableView)以提高性能并减少内存开销,但它需要以水平方式滚动。
有什么想法吗?是否可以水平进行UITableView操作?
谢谢!
答案 0 :(得分:2)
您可以使用大型滚动视图,并监视要更改的滚动位置。您可以将图像作为子视图添加到实际可视区域中,并在滚动它们时将其删除。
这样,您只需要在任何给定时间显示少量图像视图,但是您可以将它们的外观全部显示为“那里”。
您甚至可以通过更改图像和位置来回收图像视图,这样您就不会创建和销毁复杂对象。这就是UITableView对单元格的作用。
答案 1 :(得分:2)
就像改编变换一样简单。
这是代码。在你的tableViewController init中写下这个:
self.view.frame = CGRectMake(100,-5,250,350); //any Frame of your choice
CGAffineTransform trans = self.view.transform; // get current transform (i.e. portrait)
trans = CGAffineTransformRotate(trans, (M_PI / -2.0)); // rotate 90 degrees to go landscape
self.view.transform = trans; // set current transform (landscape)
但是现在你需要意识到你的轴也是交换的。您对高度所做的任何更改都会改变宽度(反之亦然),对origin.x所做的任何更改都会更改origin.y(反之亦然)
答案 2 :(得分:0)
我同意 mbmcavoy ,你也可以看看iPhone/iPad – AppStore like UIScrollView with paging and preview这篇文章解释了你对UIScrollView的需求,并提供了一个很好的例子和源代码。
此致
答案 3 :(得分:0)
是否可以水平添加UITableView?在与屏幕不同的方向上。然后你可以使用常规的UITableView语义,其中每一行都是一个水平滚动而不是垂直滚动的图像。
答案 4 :(得分:0)
发布此旧线程的答案,因为验证的答案不正确。您可以使用UITableViewController及其dequeueReusableCellWithIdentifier内置功能。</ p>
诀窍是让你的桌面旋转然后让你的单元格反方向旋转。
在viewDidLoad中你将添加:
self.view.transform = CGAffineTransformMakeRotation(-M_PI_2);
然后在cellForRowAtIndexPath中使用:
cell.containerView.transform = CGAffineTransformMakeRotation(M_PI_2);
确保将单元格的每个内容都添加到容器视图中(在此示例中为 containerView ),这样您只需旋转容器而不是每个单元子视图。
另请注意,对于具有方形尺寸的单元格,它会更好用,否则您可能会遇到高度/宽度计算问题。
答案 5 :(得分:-1)
我想我有答案关于水平滚动UITableView
:
UIScrollView
(并禁用
垂直卷轴)UITableView
图UIScrollView.contentSize
作为
tableView width