设置子视图的frame不生效

newbiegaga 2015-05-27 07:36:56
tableView的headerView包含一些子元素,想改一下某一部分子元素的位置,但是获取subview之后重新设置frame不生效。
代码1:
for (int i = 0;i<[[headerView subviews] count]; i++) {
UIView *subView = [[headerView subviews] objectAtIndex:i];
CGRect subFrame = [subView frame];
subFrame.origin.y += 150;
[subView setFrame:subFrame];
[headerView addSubview:view];
}
[m_TwoColorBallDetailTableView setTableHeaderView:headerView];
代码2:
for (int i = 0;i<[[headerView subviews] count]; i++) {
UIView *subView = [[headerView subviews] objectAtIndex:i];
CGRect subFrame = [subView frame];
subFrame.origin.y += 150;
[subView removeFromSuperview];
[subView setFrame:subFrame];
[headerView addSubview:view];
}
[m_TwoColorBallDetailTableView setTableHeaderView:headerView];
代码1 运行之后不变 代码2运行之后 子视图都移到左上角去了
PS:有个朋友说是和AutoLayout有关
求解答,怎样能实现我想达到的效果每个元素均向下移。
...全文
603 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
styker 2015-09-25
  • 打赏
  • 举报
回复
如果有AutoLayout或者SizeClass,在Xib上的控件无法通过Frame修改位置。如果是手工创建的View,是可以通过Frame移动的。 如果要移动SizeClass,可以映射它的Constraint,在代码中修改Constraint.constant.
梦一场Monster 2015-06-03
  • 打赏
  • 举报
回复
把layout勾勾去掉
Bannings 2015-05-27
  • 打赏
  • 举报
回复
TableView 有用约束去控制子视图的frame,你基本上调不了

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧