iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iOS:在屏幕上添加具有修复位置的子视图大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

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

[self.view addSubview:aSubView];

不再起作用了.@H_674_24@

有任何想法吗?@H_674_24@

编辑#1:我使用的是UITableViewController,而不是简单的UITableView.@H_674_24@

编辑#2:@H_674_24@

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方法调用.您所要做的就是实现每次滚动偏移更改时调用方法,并调整“固定”视图的框架.@H_674_24@

像这样的东西:@H_674_24@

- (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的子视图,这将确保它看起来像是在表视图上方的固定位置.@H_674_24@

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

- (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:在屏幕上添加具有修复位置的子视图所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。