1

好的,所以我在 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];
}
4

1 回答 1

0
self.Imageview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

这条线保持图像适合

self.Imageview.contentMode = UIViewContentModeScaleAspectFit;

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

另一种方式:

对特定的高度宽度您想要的)使用以下方法和图像

+ (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,具有您指定的特定大小:)
此代码可能对您有帮助:)

于 2013-02-10T04:16:47.943 回答