gpt4 book ai didi

ios - 如何仅将 UIView 的部分 subview 转换为 UIImage

转载 作者:行者123 更新时间:2023-11-29 01:17:17 25 4
gpt4 key购买 nike

从昨天开始我就一直卡在这个问题上。我试图只捕获 UIView 的一些 subviews。这个主 UIView 有 4 个 subviews,即 headercaptionimage页脚。我正在尝试仅捕获 captionimage

我尝试使用 UIGraphicsBeginImageContextWithOptions() 并根据 captiony 坐标设置 CGSizeimageheight。但是,它仍然不只捕获 captionimage

我还尝试使用 UIStackView,在这里,我只能捕获 captionimagestackview 本身仍然保持主 UIView 的大小。我可以解决尺寸问题,但我在使用 UIStackView 时遇到的主要问题是,当我使用 addArrangedSubview: 时, subview 添加的 从主 UIView 中消失。

我对如何着手做这件事感到困惑?仅使用 UIGraphicsBeginImageContextWithOptions() 不允许我仅捕获 captionimage 并使用 UIStackView使 captionimage 从主 UIView 中消失。

我希望这个解释没有让人感到困惑,我很乐意消除别人的疑虑。

请告诉我有关从主 UIView 中仅捕获部分 subview 的最佳方法。

感谢任何帮助!

提前致谢!

编辑:感谢 PaulDaPigeon 的评论,对我有用的方法。我最终使用了 UIGraphicsBeginImageContextWithOptions()

- (UIImage *) extractImageOfSubviewFromView: (UIView *)view {

CGRect finalImageRect = CGRectMake(0, 0, view.frame.size.width, (view.lblCaption.frame.size.height + view.image.frame.size.height));

UIGraphicsBeginImageContextWithOptions(finalImageRect, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(finalImageRect, 0, - view.header.frame.size.height);
[view.layer renderInContext:context];

UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return finalImage;

}

希望这对以后的人有帮助!

最佳答案

正确的方法似乎是使用 UIGraphicsBeginImageContextWithOptions() 但不是添加 View 本身,您应该尝试 [stackView addArrangedSubview:subview.copy]; 到避免将其从主视图中移除。

关于ios - 如何仅将 UIView 的部分 subview 转换为 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35012235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com