Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.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 当UIScrollView子视图与UIAPTgestureRecognitor一起使用时,它会释放(删除)内存_Ios_Uiscrollview_Uiimageview_Uitapgesturerecognizer_Subviews - Fatal编程技术网

Ios 当UIScrollView子视图与UIAPTgestureRecognitor一起使用时,它会释放(删除)内存

Ios 当UIScrollView子视图与UIAPTgestureRecognitor一起使用时,它会释放(删除)内存,ios,uiscrollview,uiimageview,uitapgesturerecognizer,subviews,Ios,Uiscrollview,Uiimageview,Uitapgesturerecognizer,Subviews,该示例非常简单,一组UIImageView作为子视图添加到UIScrollView: 轻触UIImageView后,会将其发送到wideDisplay:方法以广泛显示: -(void)wideDisplay:(UITapGestureRecognizer*)gesture{ UAModalPanel *wideScreen = [[UAModalPanel alloc] initWithFrame:self.view.bounds]; wideScreen.padding =

该示例非常简单,一组UIImageView作为子视图添加到UIScrollView:

轻触UIImageView后,会将其发送到wideDisplay:方法以广泛显示:

-(void)wideDisplay:(UITapGestureRecognizer*)gesture{

    UAModalPanel *wideScreen = [[UAModalPanel alloc] initWithFrame:self.view.bounds];
    wideScreen.padding = UIEdgeInsetsMake(20.0, 20.0, 20.0, 20.0);

    self.imageView = [[UIImageView alloc]init];
    self.imageView = (UIImageView*)gesture.view;
    self.imageView.frame = CGRectMake(20, 20, 790, 500);

    [wideScreen.contentView addSubview:self.imageView];
    [self.view addSubview:wideScreen];    

}

将imageView添加到模式视图后,此UIImageView将从scrollview子视图中删除。imageView是一个强大的属性,但尽管如此,在添加到自定义模式视图后,它似乎失去了引用,如何防止在选择它后将其从scrollview中删除?

每次调用-wideDisplay:?

是,如下所示,每次我选择UIImageView并调用wideDisplay:方法时,都会实例化self.imageView。我不明白为什么在使用ITView后会从scrollview中释放子视图一次只能有一个superview。您可以将图像视图从第一个代码段中添加的self.scrollView移动到widescreen.contentView。如果将其移动到widescreen.contentView,它将从self.scrollview中删除。此外,您还创建了一个视图[[UIImageView alloc]init],然后通过重新指定self.imageView立即放弃该视图
-(void)wideDisplay:(UITapGestureRecognizer*)gesture{

    UAModalPanel *wideScreen = [[UAModalPanel alloc] initWithFrame:self.view.bounds];
    wideScreen.padding = UIEdgeInsetsMake(20.0, 20.0, 20.0, 20.0);

    self.imageView = [[UIImageView alloc]init];
    self.imageView = (UIImageView*)gesture.view;
    self.imageView.frame = CGRectMake(20, 20, 790, 500);

    [wideScreen.contentView addSubview:self.imageView];
    [self.view addSubview:wideScreen];    

}