首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据subView设置主视图的大小

根据subView设置主视图的大小
EN

Stack Overflow用户
提问于 2013-09-20 22:45:45
回答 2查看 87关注 0票数 1

我有一个带框架的主视图

0 60 768 1024

它有很多像subView一样的视图。第一个子视图是一个UIImageView。与ImageView关联的属性是AspectFit。现在我想截图屏幕的唯一部分,它限制了UIImageView的边界(至少有4-5个子视图可以在这个UIImageView之上,也可以不在上面),这里使用了iPhone给出的标准代码。我得到的图像是Main View。现在,为了只获取UIImageView的屏幕截图以及上面的内容,我需要将我的主视图的尺寸设置为仅包含UIImageView。

假设图像大小为100,100。当我按下按钮时,我应该如何设置我的mainView的Bounds/fRAME?或者换句话说,我如何才能获得相对于self.view的UIImageView框架

EN

回答 2

Stack Overflow用户

发布于 2013-09-20 22:58:27

尝试计算UIImageView的坐标,而不是更改主视图的框架。

假设您的主视图和图像视图的帧数分别为(0,60,768,1024)和(20,20,100,100)。

因此,图像视图相对于全局坐标系的帧是(20,80,100,100)。只需将主视图的x,y坐标添加到它的子视图中就可以实现这一点。然后,您可以获得所需帧的截图。

票数 0
EN

Stack Overflow用户

发布于 2013-09-20 23:02:08

一种方法是获取整个视图的图像,然后对其进行裁剪。不需要重新构造。结合来自herehere的最佳答案,它可能看起来像这样:

代码语言:javascript
复制
- (UIImage *)imageWithView:(UIView *)view croppedBy:(CGRect)rect {

    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect);
    UIImage *result = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef);
    return result;
}

对于你的应用程序,这样调用它(假设我们在一个视图控制器中):

代码语言:javascript
复制
UIImage *justMyImageView = [self imageWithView:self.view croppedBy:self.myImageView.frame];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18919624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档