Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 7情节提要自动布局uitableviewcontroller表格ViewHeader视差_Ios_Uitableview_Autolayout_Parallax - Fatal编程技术网

iOS 7情节提要自动布局uitableviewcontroller表格ViewHeader视差

iOS 7情节提要自动布局uitableviewcontroller表格ViewHeader视差,ios,uitableview,autolayout,parallax,Ios,Uitableview,Autolayout,Parallax,我陷入了一个奇怪的问题 我想将Autolayout与UITableViewController以及tableHeaderView一起使用以坚持使用 将其放在桌面上并拉伸,就像其他应用程序中的视差效果一样 我知道github上还有其他解决方案,但我找不到任何解决此特定问题的方法 我所做的是: 创建单视图应用程序新项目使用版本5.1.1 5B1008 将默认视图控制器场景替换为uitableviewcontroller 使表格视图具有2或3个静态单元格 在左对齐垂直中心约束中将UIView和UIIm

我陷入了一个奇怪的问题

我想将Autolayout与UITableViewController以及tableHeaderView一起使用以坚持使用 将其放在桌面上并拉伸,就像其他应用程序中的视差效果一样

我知道github上还有其他解决方案,但我找不到任何解决此特定问题的方法

我所做的是:

创建单视图应用程序新项目使用版本5.1.1 5B1008

将默认视图控制器场景替换为uitableviewcontroller

使表格视图具有2或3个静态单元格

在左对齐垂直中心约束中将UIView和UIImage视图添加为表头视图

将以下代码添加到从UITableviewController继承的viewcontroller.m中

代码:

这会创建视差效果以及标题视图约束

但问题是header视图的原点不符合tableview原点

当我们向下拉的时候,它确实下降了

也无法查看向UITableViewController添加约束的任何方法

我想在UITableViewController中完成这一切,而不添加其他库


我希望有办法将标题粘贴到顶部并完成这项工作。

更改内容视图的框架我猜是imageView而不是标题视图本身

创建IBOutlet*myHeaderContentView,并将您想要在headerView中产生效果的内容连接起来。 用上述代码中的myHeaderContentView替换所有myHeaderView

别忘了这一点。self.myHeaderView.clipsToBounds=否


完成了。我测试过了

我更喜欢将UIViewController与UITableView一起使用,而不是使用UITableViewController。使用UITableViewController,很难自定义。答案为+1。但是设置在标题视图中心的内容视图也有问题。能否显示使图像在内容视图中居中的约束详细信息?因为更改内容视图的框架而不是NSLayoutConstraint,所以需要更改图像视图的框架以使其在内容视图中居中。您已经使用滚动偏移更改了内容视图的帧,我知道您也可以这样做。
- (void)viewDidLoad
{
    [super viewDidLoad];
    headerOriginalFrame = self.myHeaderView.frame;
}


-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    CGFloat offsetY = -(scrollView.contentOffset.y + scrollView.contentInset.top);
    offsetY = MAX( 0.0, offsetY );
    CGRect rect = headerOriginalFrame;
    rect.origin.y = -offsetY;
    rect.size.height = headerOriginalFrame.size.height + offsetY;
    self.myHeaderView.frame = rect;
}