我在这里遇到一个奇怪的问题。我有一个在界面生成器中设置的UIScrollView。我通过名为setupScrollView的方法向其中添加内容,如下所示:

-(void)setupScrollView {

    UIView *content = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.scrollView.frame.size.width*[self.stickers count], self.scrollView.frame.size.height)];
    for(int i=0; i<[self.stickers count]; i++){

        UIImageView *imageView= [[UIImageView alloc] initWithFrame:CGRectMake(i*self.scrollView.frame.size.width, 0, self.scrollView.frame.size.width, self.scrollView.frame.size.height)];
        MySticker *sticker = self.stickers[i];
        imageView.image=sticker.image;
        [content addSubview:imageView];
        NSLog(@"scroll view width is %f",self.scrollView.frame.size.width);
        NSLog(@"ImageView width is %f", imageView.frame.size.width);
    }



    self.scrollView.contentSize=CGSizeMake(content.frame.size.width ,content.frame.size.height);
    [self.scrollView addSubview:content];




}

现在,我在viewDidLayoutSubviews中调用此方法,因为在使用接口构建器中设置的约束之后,我需要首先重新定位视图。一切正常,但滚动视图中的图像略有锯齿状扭曲,还有带有黑色轮廓的贴纸/聊天图像,因此非常引人注目。但是,如果我将[self setupScrollView]放置在viewDidLoad方法中,则图像不会失真并且看起来非常清晰。示例图片:

不知道为什么要这么做。谁能给我一些指向我可能做错了的事情?

最佳答案

如果它在viewDidLoad中正常工作,请尝试在viewWillLayoutSubviews方法中调用setupScrollView方法。
还要检查一次调用setupScrollView的情况,以避免添加重复项。

关于ios - 设置一个UIScrollView。如果在viewDidLayoutSubviews中调用,则UIImageView图像会变形。包含图片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29589816/

10-10 21:07