Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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 修复了顶部UITableView中的UIImage_Ios_Swift_Uitableview_Cocoa Touch_Uiimageview - Fatal编程技术网

Ios 修复了顶部UITableView中的UIImage

Ios 修复了顶部UITableView中的UIImage,ios,swift,uitableview,cocoa-touch,uiimageview,Ios,Swift,Uitableview,Cocoa Touch,Uiimageview,当我在带有原型单元格的UITableView顶部添加一个UIImage时,图像不会保持固定。因此,当我滚动顶部的UITableView时,它也会随之滚动 有没有办法将UIImage视图添加为固定(不可移动)视图 谢谢 您可以做的是创建一个UIView子类并通过点击测试,从而将所有触摸事件传递到下面的表格视图,这样您就可以在图像视图中使用滚动手势,而不会移动它 在您的实施中: - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

当我在带有原型单元格的
UITableView
顶部添加一个
UIImage
时,图像不会保持固定。因此,当我滚动顶部的
UITableView
时,它也会随之滚动

有没有办法将
UIImage
视图添加为固定(不可移动)视图


谢谢

您可以做的是创建一个
UIView
子类并通过点击测试,从而将所有触摸事件传递到下面的表格视图,这样您就可以在图像视图中使用滚动手势,而不会移动它

在您的实施中:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

    UIView *view = [super hitTest:point withEvent:event];

    if (view == self) {

        view = nil;

    }

    return view;
}

UIImageView
放在表视图上,即将其添加到表视图的superview中(确保已启用用户交互,并将情节提要中的类设置为您的子类。

使用以下方法在UIImageView中设置图像或在UITableView标题中添加为UIView背景。很抱歉,下面的代码是swift的,您也会在Objective C中找到它

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

}

您需要遵循以下步骤:

  • 将baseview保持为常规UIView
  • 在(0,10)处添加图像作为子视图
  • 在(0,10+边距)位置添加UITableView

  • UITableView是UIScrollView的一个子类。因此,我们可以使用scrollViewDidScroll方法来执行此任务

    将imageView固定在顶部很简单。但是您需要在scrollViewDidScroll方法中获取imageView的引用

    func scrollViewDidScroll(scrollView: UIScrollView) {
    
        if scrollView==self.tableView {
    
            var frame = yourImageView.frame
    
            if scrollView.contentOffset.y > 0 {
    
                frame.origin.y = scrollView.contentOffset.y
                yourImageView.frame = frame
    
            } else if scrollView.contentOffset.y == 0 {
    
                frame.origin.y = 0
                yourImageView.frame = frame
            }
        }
    }
    

    把它放在桌子里面header@FrequencyMatched它也会滚动。我建议将它放在UIImageView中,作为主视图(包含图像和表)的子视图放在UITableView的顶部@ryancrunchi是的,但如果将UIImageView作为节头(以编程方式),它不会滚动。如果它是分区标题,它将在第二个分区之前不会滚动,但如果您滚动到顶部,它将滚动(如拉动刷新)。如果它是表格视图标题,它将像任何其他单元格一样滚动。