- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
UIView 提供“纵横比”内容模式。但是,我已经对 UIView 进行了子类化,并且想使用 drawInRect 绘制一个 UIImage 并进行纵横比调整。有没有什么方法可以让我在不使用 UIImageView 的情况下访问该功能?
最佳答案
这方面的数学有点复杂,但幸运的是,这是我之前准备的解决方案:
- (UIImage *)imageScaledToSize:(CGSize)size
{
//create drawing context
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0f);
//draw
[self drawInRect:CGRectMake(0.0f, 0.0f, size.width, size.height)];
//capture resultant image
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
- (UIImage *)imageScaledToFitSize:(CGSize)size
{
//calculate rect
CGFloat aspect = self.size.width / self.size.height;
if (size.width / aspect <= size.height)
{
return [self imageScaledToSize:CGSizeMake(size.width, size.width / aspect)];
}
else
{
return [self imageScaledToSize:CGSizeMake(size.height * aspect, size.height)];
}
}
第一个函数相当于“缩放以填充”,第二个(调用第一个)相当于“纵横比”。这些方法是作为 UIImage 上的一个类别编写的,因此要在另一个类中使用它们,您需要通过将图像作为第二个参数传入来调整它们(或者像我一样在 UIImage 上创建一个类别)。
关于ios - 使用 drawInRect 时 UIImage Aspect Fit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858404/
我正在开发我的应用程序的新版本并尝试替换已弃用的消息,但我无法通过这个。 我不明白为什么 drawInRect:withAttributes 不工作。代码在 drawInRect:withFont:l
我正在将 iphone 应用程序移植到 Mac 应用程序,我必须将所有 UIKit 相关类更改为 AppKit。如果您能在这方面帮助我,我将不胜感激。这是执行以下部分的最佳方法吗.. Iphone 应
我想“提取” UIImage 的一部分,但我遇到了一些麻烦。 例如,原始图像大小为 320x480,我想在 CGRect(10, 10, 100, 100) 这样的矩形中渲染一个新的 UIImage
现在我有以下内容: - (void)drawRect { // some drawing [bgImage drawinRect:self.bounds]; // some d
我正在尝试使用渐变填充来填充一些文本,其中我将文本绘制模式设置为剪切,然后绘制渐变填充。问题是,每当我将文本绘制模式设置为剪辑时,文本字符串的每个字符都会放置在彼此的顶部,而不是按顺序绘制以形成单词
我正在做的是将 2 个图像合并为单个图像。 这是代码。 UIGraphicsBeginImageContext(CGSizeMake(1024, 768)); [image1 drawInRect:C
我对正确使用 UIImage 和方法 drawInRect 有疑问。 我使用 iPad 4,Xcode 版本 6.1.1 , IOS 8.1.2我使用了 ARC,我尝试过不使用 ARC 所以,我有图像
我有以下代码在 UITableViewCell 中绘制文本,它可以很好地绘制和返回文本,但在 UITableViewCell 的中心。所以我给它正确对齐但没有工作!! UIColor * textCo
我正在更新一个旧应用程序,但我无法使 drawInRect 在 PDF 上下文中工作。 我将已弃用的函数 CGContextShowTextAtPoint 替换为 CGContextShowTextA
我正在尝试在上下文中绘制文本,它起作用了。 我正在尝试为该文本设置一个 UIfont,但它不起作用。文字大小保持不变。 这是我的代码 - (UIImage *)imageByDrawingCircle
我有一个应用程序[基于窗口],我需要在屏幕上“绘制”一些图像,[我正在遵循一个实现一些自定义图表绘图的示例项目,这样做,但它不使用 UIImage View ,只是UI图像) 我正在使用 - (voi
我创建了一个名为 MySegment 的新类,它继承自 UIControl。 首先,我使用 CAGradientLayer 初始化了一条渐变线。 第二,[self.layer addSublayer:
我创建了一个自定义的 UIView 类,以便可以显示 Map 对象的内容。经过大量研究,我仍然无法确定为什么下面的方法不绘制任何东西: - (void)drawRect:(CGRect)rect {
正在尝试修复 iOS 应用程序中的一些警告并更改了此更新: [[self text] drawInRect:rect withFont:[UIFont systemFontOfSize:kFontSi
我在背景中画了一些图像。有时我的应用程序会因奇怪的错误而崩溃: function signature specialization of MyApp. 我检查了所有崩溃,并且所有崩溃都发生在不使用上
我正在使用 drawInRect: 将文本绘制到 UIView。我从服务器端脚本获取要绘制的文本。至少在一种情况下,字符\U00a0 出现在我从服务器接收到的字符串中,并且该单个字符破坏了 drawI
我正在尝试缩小 2 倍图像,然后在矩形中绘制 UIImage,但不知何故这没有任何效果。即使 .scale 属性发生变化,图像看起来仍具有相同的比例。 这是我的drawRect()的实现 ove
以高帧率将图像渲染和缩放到表面的最快方法是什么? 我正在使用 drawRect 以大约 30FPS 的速度绘制(缩放)NSBitmapImageRep,但它使用了大量的 CPU。 将 NSBitmap
我正在学习 OpenGLES,我正在尝试将 GLKViewer 放入 UIViewController 中。 我知道我可以通过使用 GLViewController 来解决主要问题,但我正在努力学习如
我在这个网站上读过一些关于使用drawInRect而不是CGContext绘制方法的帖子。它仍然把它画得颠倒吗?我认为使用 drawInRect 会将其正面朝上打印,坐标系起始于左上角? -(void
我是一名优秀的程序员,十分优秀!