iOS:在屏幕上添加具有修复位置的子视图

iOS:在屏幕上添加具有修复位置的子视图,第1张

概述如何在屏幕上修复视图位置(尤其是在UIScrollView和UITableView中)?我想在故事板中 [self.view addSubview:aSubView]; 不再起作用了. 有任何想法吗? 编辑#1:我使用的是UITableViewController,而不是简单的UITableView. 编辑#2: CGRect fixedFrame = self.menuViewRelative 如何在屏幕上修复子视图位置(尤其是在UIScrollVIEw和UItableVIEw中)?我想在故事板中

[self.vIEw addSubvIEw:aSubVIEw];

不再起作用了.

有任何想法吗?

编辑#1:我使用的是UItableVIEwController,而不是简单的UItableVIEw.

编辑#2:

CGRect fixedFrame = self.menuVIEwrelative.frame;fixedFrame.origin.y = 0 + scrollVIEw.contentOffset.y;self.menuVIEwrelative.frame = fixedFrame;menuVIEwrelative = [[UIVIEw alloc] init];menuVIEwrelative.backgroundcolor = [UIcolor graycolor];menuVIEwrelative.frame = CGRectMake(0.0,0.0,320.0,50.0);[self.vIEw addSubvIEw:self.menuVIEwrelative];
解决方法 正如其他人所指出的,如果你不使用UItableVIEwController,这会更容易一些,但不管怎么说也不是那么难.

UItableVIEw是UIScrollVIEw的子类,因此表视图的委托(在本例中为您的UItableVIEwController实例)也将接收uiscrollviewdelegate方法调用.您所要做的就是实现每次滚动偏移更改时调用的方法,并调整“固定”视图的框架.

像这样的东西:

- (voID)scrollVIEwDIDScroll:(UIScrollVIEw *)scrollVIEw{    CGRect fixedFrame = self.fixedVIEw.frame;    fixedFrame.origin.y = 20 + scrollVIEw.contentOffset.y;    self.fixedVIEw.frame = fixedFrame;}

将表格视图顶部所需的点数替换为20.您仍然将self.fixedVIEw添加为self.vIEw的子视图,这将确保它看起来像是在表视图上方的固定位置.

编辑:你发布的代码,我猜你的版本应该是这样的:

- (voID)vIEwDIDLoad {    menuVIEwrelative = [[UIVIEw alloc] init];    menuVIEwrelative.backgroundcolor = [UIcolor graycolor];    menuVIEwrelative.frame = CGRectMake(0.0,50.0);    [self.vIEw addSubvIEw:self.menuVIEwrelative];}- (voID)scrollVIEwDIDScroll:(UIScrollVIEw *)scrollVIEw    CGRect fixedFrame = self.menuVIEwrelative.frame;    fixedFrame.origin.y = 0 + scrollVIEw.contentOffset.y;    self.menuVIEwrelative.frame = fixedFrame;}
总结

以上是内存溢出为你收集整理的iOS:在屏幕上添加具有修复位置的子视图全部内容,希望文章能够帮你解决iOS:在屏幕上添加具有修复位置的子视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1068669.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存