【问题标题】:UIImageView auto resizes when UIScrollView tapped点击 UIScrollView 时 UIImageView 自动调整大小
【发布时间】:2013-02-10 03:49:38
【问题描述】:

好的,所以我在 UIScrollView 中有一个 UIImageView。我将图像动态加载到 UIImageView 中,然后手动调整它的大小。到现在为止还挺好。但是,如果我触摸 UIScroll 滚动视图(包含调整大小的元素),一切都会调整回原始大小。以防万一,这是调整图像大小的代码:

 /**
* Proportionally resize and position doodle
*/
- (void)resizeDoodle:(CGFloat)height {

self.doodleImageView.frame = CGRectMake(0, 0, self.view.bounds.size.width, height);
[self.scrollView setContentSize:self.doodleImageView.frame.size];
}

【问题讨论】:

    标签: objective-c uiscrollview uiimageview


    【解决方案1】:
    self.Imageview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    

    并且这条线保持图像适合

    self.Imageview.contentMode = UIViewContentModeScaleAspectFit;
    

    编写以上代码以限制您的问题。

    另一种方式:

    对特定的hightwidth你想要的)使用以下方法和image

    + (UIImage*)resizeImage:(UIImage*)image withWidth:(int)width withHeight:(int)height
    {
        CGSize newSize = CGSizeMake(width, height);
        float widthRatio = newSize.width/image.size.width;
        float heightRatio = newSize.height/image.size.height;
    
        if(widthRatio > heightRatio)
        {
            newSize=CGSizeMake(image.size.width*heightRatio,image.size.height*heightRatio);
        }
        else
        {
            newSize=CGSizeMake(image.size.width*widthRatio,image.size.height*widthRatio);
        }
    
    
        UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
        [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
        UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    
        return newImage;
    }
    

    此方法返回 NewImage,具有您指定的特定大小:)
    这段代码可能对你有帮助:)

    【讨论】:

    • 感谢您的回复。这确实迫使图像按比例调整大小,但没有解决我的问题。尝试滚动 UIScrollView 后,图像仍然恢复到原始大小。
    • 谢谢。我当然可以调整图像的大小,但由于某种原因,它在我滚动后会缩小。我不知道为什么会这样,尤其是在成功调整大小之后。
    • self.View.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;...请将此代码用于您的视图
    • @AndreiTaraschuk 可能需要为该视图组件禁用自动布局。因为自动布局会强制它调整回相同大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    相关资源
    最近更新 更多