imr*_*ran 39 iphone orientation ipad
我希望在我的ipad应用程序中实现一个布局,它有一个非常适合的视图,可以向左和向右滚动,而不是向上和向下滚动:
所以而不是
第1行第2行第3行(垂直滚动)它将是:第1行,第2行,第3行(水平滚动)
我已经看到UItableView被设计为仅进行垂直滚动,因此进行转换不会产生预期的效果.是否有一种标准方法可以利用uitableview提供的数据源提供商?
我基本上想做的事情类似于Ipad上的BBC新闻阅读器应用程序与故事列表可供选择.
谢谢
die*_*dez 25
这是我使用的方法:
1)实现您自己的UITableView子类并覆盖其initWithCoder:方法,如下所示:
- (id)initWithCoder:(NSCoder *)aDecoder
{
assert([aDecoder isKindOfClass:[NSCoder class]]);
self = [super initWithCoder:aDecoder];
if (self) {
const CGFloat k90DegreesCounterClockwiseAngle = (CGFloat) -(90 * M_PI / 180.0);
CGRect frame = self.frame;
self.transform = CGAffineTransformRotate(CGAffineTransformIdentity, k90DegreesCounterClockwiseAngle);
self.frame = frame;
}
assert(self);
return self;
}
Run Code Online (Sandbox Code Playgroud)
2)创建自己的UITableViewCell类并initWithCoder:再次覆盖:
- (id)initWithCoder:(NSCoder *)aDecoder
{
assert([aDecoder isKindOfClass:[NSCoder class]]);
self = [super initWithCoder:aDecoder];
if (self) {
const CGFloat k90DegreesClockwiseAngle = (CGFloat) (90 * M_PI / 180.0);
self.transform = CGAffineTransformRotate(CGAffineTransformIdentity, k90DegreesClockwiseAngle);
}
assert(self);
return self;
}
Run Code Online (Sandbox Code Playgroud)
3)现在,您可以在IB中创建UITableView元素,并在身份检查器中将其类设置为"MyHorizontalTableView".
4)在IB中创建UITableViewCell元素,并在身份检查器中将其类设置为"MyHorizontalTableViewCell".
就是这样.
如果您不想使用IB来实例化表视图或单元格,这也可以通过覆盖其他初始值设定项来实现.
一个示例项目,我围绕这个概念建立在GitHub上找到.
如果您可以将应用程序限制为仅适用于iOS 6及更高版本,则最好的方法是使用UICollectionView.
如果你需要支持iOS 4/5,那么试试UICollectionView的一个开源重新实现,例如.PSTCollectionView
小智 3
现在您必须使用 UIScrollView 并将滚动设置为仅水平。至于数据,您需要自己处理出队和优化。如果您预计不会有超过十几个对象,那么您可能可以跳过它,但如果它们是数据密集型的,请尝试实现与 UITableView 使用的类似的数据源和加载。请注意,BBC 新闻阅读器应用程序还使用启用的分页功能来滚动每个“页面(4 个左右新闻图标)”。
| 归档时间: |
|
| 查看次数: |
49287 次 |
| 最近记录: |