gpt4 book ai didi

ios - 获取控件结束位置的 x/y 帧坐标

转载 作者:行者123 更新时间:2023-11-28 19:50:30 25 4
gpt4 key购买 nike

我目前正在返回一个看起来像这样的 UITableViewCell*

Image --- Text ---  Button --- Image

我使用的代码是这样的

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *simpleTableIdentifier = @"SimpleTableItem";


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];



if (cell == nil) {


cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];

}


cell.textLabel.text = [self.tableData objectAtIndex:indexPath.row]; //Add cell text

cell.imageView.image = [UIImage imageNamed:@"Test.jpeg"]; //Add cell image

float f = [cell.textLabel alignmentRectInsets].right;



UIButton *scanQRCodeButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; //ADD UIButton

scanQRCodeButton.frame = CGRectMake(?, ?, 50.0f, 50.0f); //Coordinates for image view

[scanQRCodeButton setTitle:@"Hello" forState:UIControlStateNormal];

[cell.contentView addSubview:scanQRCodeButton];



UIImageView *preArrowImage =[[UIImageView alloc]init ]; //ADD Image View

preArrowImage.image =[UIImage imageNamed:@"Test.jpeg"];

preArrowImage.frame = CGRectMake(?, ?, 10, 30); //Coordinates for image view

[cell.contentView addSubview:preArrowImage];



return cell;
}

如前所述,这就是 TableViewCell 的样子

 ImageA --- Text ---  Button --- ImageB

我正在使用以下方法在 TableViewCell 中对齐我的按钮

 scanQRCodeButton.frame = CGRectMake(?, ?, 50.0f, 50.0f);

我正在使用以下方法对齐 UIImageView

 preArrowImage.frame = CGRectMake(?, ?, 10, 30);  

现在我的问题是,实际上我使用的是硬编码变量而不是 ? 。如何找出文本结束位置的 x 帧坐标,以便我可以利用该值而不是硬编码。

最佳答案

首先,您的代码存在一些问题。每次重复使用单元格时,您都会将 subview 添加到单元格的 contentView 中。该代码应该放在 if (cell == nil) 主体中,这样它只会发生一次。您当然需要对这些 subview 的引用,您可以通过使用带有专用变量的 UITableViewCell 子类或通过设置标签来实现。

接下来,一般来说,您可以执行以下操作:

CGFloat labelRightEdge = CGRectGetMaxX(textLabel.frame);

我不确定它在这种情况下是否有效,并在您尝试将事物与 UITableViewCell 内置 View 对齐时给您带来问题。这些 View 是在内部布局的,并不是真的要与自定义 subview 结合使用。相反,我建议您通过创建一个 UITableViewCell 子类来自己构建所有 View ,然后您可以在 layoutSubviews 中按照您认为合适的方式布置所有 View 。

关于ios - 获取控件结束位置的 x/y 帧坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502112/

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