【问题标题】:IOS: change orientation of UITableView from horizontal to verticalIOS:将 UITableView 的方向从水平更改为垂直
【发布时间】:2015-10-22 18:18:22
【问题描述】:

我正在使用UITableView 显示数据的项目中工作。我的项目的方向是景观。现在我想在我的项目中添加纵向模式,以便任何用户都可以在纵向和横向模式下使用应用程序。 是否有任何代码或方法可以帮助我将UITableView 的方向从水平更改为垂直??

我想要这样的方向

【问题讨论】:

  • 旋转设备时会发生什么?我的意思是从横向到纵向。
  • 它可以很好地旋转,但我想将 tableview 上的方向从水平更改为垂直
  • 可以横向和纵向发图片吗?
  • 我编辑了我的问题,请查看示例图片

标签: ios objective-c uitableview orientation


【解决方案1】:

只需开发 2 个具有唯一标识符的不同原型,根据当前方向在 cellForRowAtIndexPath 中提供它们。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {

        LatestNewsCell *cell = (LatestNewsCell *)[tableView dequeueReusableCellWithIdentifier:@"portraitCell" forIndexPath:indexPath];

        // configure cell

        return cell;

    } else {

        LatestNewsCell *cell = (LatestNewsCell *)[tableView dequeueReusableCellWithIdentifier:@"landscapeCell" forIndexPath:indexPath];

        // configure cell

        return cell;
    }
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    [self.tableView reloadData];
}

对于具有更多标签的单元格,您只需为这些标签创建额外的 IBOutlets,并将现有的标签重用于在两个方向上使用的标签。

【讨论】:

    【解决方案2】:

    我相信您只需要设置您的项目以支持纵向。之后,您的UITableView 将随着您旋转设备或模拟器而旋转。

    我创建了一个简单的项目来测试它。在此处查看output

    请注意,有时视图会正确旋转,有时则不会。一定是个bug。

    【讨论】:

    • 我的项目支持两种方向,但我想要的是当我想纵向使用应用程序时,tableview 的标题和单元格将垂直显示而不是水平显示
    猜你喜欢
    • 1970-01-01
    • 2015-03-23
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2014-05-25
    相关资源
    最近更新 更多