【问题标题】:How do you center a UIImageView in UITableViewCell regardless of orientation?无论方向如何,如何在 UITableViewCell 中将 UIImageView 居中?
【发布时间】:2011-09-16 22:13:56
【问题描述】:

我正在尝试使用以下代码在 UITableViewCell 中将 UIImageView 宽度居中:

        // self.cover_image is a UIImage variable
        // cell is a UITableCellView

        UIImageView* backcover_imageview = [[[UIImageView alloc] initWithImage:self.cover_image] autorelease];
        [backcover_imageview sizeToFit];

        //center image
        //float xPos = cell.contentView.frame.size.width - (self.cover_image.size.width/2);

        //TODO: need better solution
        //Eyeballing attempt:
        float xPos = self.cover_image.size.width - 25;
        CGRect bookcover_frame = backcover_imageview.frame;
        bookcover_frame.origin.x = xPos;
        backcover_imageview.frame = bookcover_frame;
        backcover_imageview.tag = 9000;
        backcover_imageview.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;

        [cell.contentView addSubview:backcover_imageview];

无论 iPad 或 iPhone 设备处于什么方向,我都试图将 UIImageView 置于 UITableCellView 的中心。有人知道正确的方法吗?

【问题讨论】:

    标签: iphone ios ipad uitableview uiimageview


    【解决方案1】:

    我又添加了两个自动调整大小的蒙版,使用您的代码和 PengOne 的回答得到了很好的结果:

    playImage.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
    [cell.contentView addSubview:playImage];
    playImage.center = CGPointMake(cell.contentView.bounds.size.width/2,cell.contentView.bounds.size.height/2);
    

    【讨论】:

      【解决方案2】:

      backcover_imageView 添加到单元格的contentView 后,使用它来居中:

      imageView.center = CGPointMake(cell.contentView.bounds.size.width/2,cell.contentView.bounds.size.height/2);
      

      【讨论】:

      • 我选择了backcover_imageview.center = CGPointMake(cell.contentView.bounds.size.width/2,backcover_imageview.center.y);,它对我有用。感谢您的建议!
      • 'CGPointMake' 在 Swift 中不可用。可能这在当前版本的 Swift 中不起作用。解决方案是使用此处指出的 CGPoint:stackoverflow.com/a/39336801/783893
      【解决方案3】:

      您可以尝试将单元格的中心属性分配给图像视图的中心属性吗?

      类似的东西

      imageView.center = cell.center;
      

      然后将其添加到单元格中。

      【讨论】:

        【解决方案4】:

        您可以使用单元格的中心锚点将图像保持在中心:

        image.centerXAnchor.constraint(equalTo: cell.centerXAnchor).isActive = true
        image.centerYAnchor.constraint(equalTo: cell.centerYAnchor).isActive = true
        

        【讨论】:

          猜你喜欢
          • 2011-10-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多