gpt4 book ai didi

iphone - 如何设置自定义 UIView 的大小/位置以将其放置在自定义 UITableViewCell 中?

转载 作者:行者123 更新时间:2023-12-01 18:33:16 27 4
gpt4 key购买 nike

如何设置以编程方式放置在 UITableViewCell 中的 subview 的大小?

我有一个自定义(子类)UITableViewCell,其中单元格的一部分包括许多行(动态),这些行被实现为自定义 UIView。这个想法是创建自定义 View (这是一行项目),然后当 UITableViewCell 命中 layoutSubviews 时,它将(a)设置自己重新定位并(b)循环并在每一行上调用“layoutSubviews”它用于行的自定义 UIView。

问题 - 我不确定如何正确设置自定义 UIView 行的大小/位置?我如何在自定义 UIView layoutSubviews 方法中确定它的 x、y、width、height 以便我可以定位它?

例如,我实际上是否需要在 UITableCellView 的 layoutSubviews 方法中手动循环遍历所有行并调用它们的自定义方法来传递它们需要的位置/宽度/高度?然后,当自定义 UIView 行的 layoutSubview 方法被点击时,它会知道查找存储这些值以使用它们的实例变量吗?

希望这是有道理的。

结构是:

动态自定义 UITableCellView(子类)

  • 在 heightForRowAtIndexPath
  • 中动态确定 rowHeight
  • 在 layoutSubviews 中,它包括遍历 subview (我拥有的自定义 UIView)并在每个
  • 上调用 layoutSubview

    在自定义 UIView 中(代表一行项目,例如 UILabel)
  • 在 layoutSubview 中 - 问题:如何设置此 subview 的框架大小?
  • 我假设框架的 x,y 应该是 0,0?
  • 对于宽度/高度,您如何获得应该设置的 super View 区域的完整大小?
  • superview 是否应该在 layoutSubviews 之前将这些信息传递给它?
  • 最佳答案

    您可以使用 resize 方法向 UIView 添加类别。

    UIView+ResizeMethods.h

    - (void) setHeight: (CGFloat) height;
    - (void) setWidth: (CGFloat) width;
    - (void) setTop: (CGFloat) top;
    - (void) setLeft: (CGFloat) left;

    UIView+ResizeMethods.m
    - (void) setHeight: (CGFloat) height {
    CGRect frame = self.frame;
    frame.size.height = height;
    self.frame = frame;
    }
    - (void) setWidth: (CGFloat) width {
    CGRect frame = self.frame;
    frame.size.width = width;
    self.frame = frame;
    }
    - (void) setTop: (CGFloat) top {
    CGRect frame = self.frame;
    frame.origin.y = top;
    self.frame = frame;
    }
    - (void) setLeft: (CGFloat) left {
    CGRect frame = self.frame;
    frame.origin.x = left;
    self.frame = frame;
    }

    关于iphone - 如何设置自定义 UIView 的大小/位置以将其放置在自定义 UITableViewCell 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5411142/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com