我试图将Spinner添加到我在tableViewCell中定位的Like按钮。但问题是spinner正在tableViewCell之外显示。
这是我在cellForRowAtIndexPath
myspinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[myspinner setCenter:cell.like.center];
[cell.like addSubview:myspinner];
当我点击sender.tag
[myspinner startAnimating];
问题是微调器工作但不是我想要的。它出现在牢房外面。
更新
使用matt
的回答确实有效。
我也改变了我的代码,如下所示。内部选择器动作。 -(void) likeClicked:(UIButton*)sender
UIActivityIndicatorView *myspinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[myspinner setCenter: CGPointMake(CGRectGetMidX(sender.bounds),
CGRectGetMidY(sender.bounds))];
[sender addSubview:myspinner];
[myspinner startAnimating];
答案 0 :(得分:2)
此表格的代码:
[myspinner setCenter:cell.like.center];
......永远不对。原因是myspinner.center
位于其superview的坐标中 - 即cell.like
坐标。但cell.like.center
位于其 superview的坐标中。因此,您正在将苹果与橙子进行比较:您将根据生活在完全不同的坐标系中的另一个点来设置一个点。这只能偶然发挥作用。
您要做的是将myspinner.center
设置为其超级浏览的界限的中心。这些值位于相同的坐标系中(此处为cell.like
的坐标系)。
[myspinner setCenter: CGPointMake(CGRectGetMidX(cell.like.bounds),
CGRectGetMidY(cell.like.bounds))];
答案 1 :(得分:0)
或者您可能希望使用单元格的内容视图来获取单元格的中心,
[myspinner setCenter:cell.contentview.center];
这也可以。