【问题标题】:how to draw and scale text in rectangle如何在矩形中绘制和缩放文本
【发布时间】:2012-07-02 05:17:04
【问题描述】:

我的问题很简单。我有一个矩形,例如(0.0, 0.0, 300, 45),并且需要画一个字符串,例如此矩形中心的“文本”。 “文本”的高度必须适合矩形的高度。

难点是:矩形可以缩放。 “文本”的大小必须按照矩形的大小进行缩放。

我可以在矩形中心绘制字符串,如下面的编码,但难点是我无法管理随着矩形大小改变的“文本”字体大小。

[@"Text" drawInRect:textRect withFont:font];

我想在矩形中绘制文本,而不是标签,用户可以用手指缩放矩形大小,最后,我将在图像上按比例绘制文本,我认为标签不适合那些功能。

谁有好的解决方案?

谢谢!

更新:

实际上,我需要在大图上按比例绘制文字,而不是只显示在iphone屏幕上,请看以下代码:

UIImageVIew *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 320)];

imageView.image = [UIImage imageNamed:@"LargeSizeImage"]; // Image size = 2048 *2048

[self.view addSubview:imageView];

UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 300, 45)];

textLabel.text = @"Text";

[self.view addSubviews:textLabel];

// Draw text on image

UIGraphicsBeginImageCurrentContext(imageView.image.size);(2048 * 2048)

[imageView.image drawInRect:CGRectMake(0, 0, 2048, 2048)];

CGRect scaleRect = CGRectMake(10 * scaleFactor, 10 *scaleFactor, textLabel.bounds.size.width * scaleFactor, text.Label.bounds.size.height *scaleFactor);

UIFont *font = [UIFont systemOfSize:**?**];

[textLabel.text drawInRect:scaleRect withFont:font];

………… ............ ......

我的问题是如何确定字体大小?

【问题讨论】:

  • 我想在矩形中绘制文本,而不是标签,用户可以用手指缩放矩形大小,最后,我将在图像上按比例绘制文本,我认为标签不是对于那些功能。
  • 将您的代码放入代码框中。突出显示您的代码并按{ } 按钮
  • 你有想过这个吗?

标签: iphone ios text graphics


【解决方案1】:
UILabel *text = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 300, 45)];
text.backgroundColor = [UIColor clearColor];
text.font = [UIFont systemFontOfSize:45];
text.textAlignment =  UITextAlignmentCenter;
text.text = @"TEXT";
[self.view addSubview:text];

可能会得到你感兴趣的效果。

编辑

实际上,如果您调整正方形的大小,您可以动态调整文本大小。在您进行调整大小的方法中,只需为 UILabel 添加这些代码行即可触发调整大小。

text.frame = CGRectMake(0.0, 0.0, rect.frame.size.width, rect.frame.size.height);
text.font = [UIFont systemFontOfSize:rect.frame.size.height];

rect 是我用来描述您正在调整大小的矩形。

【讨论】:

  • 我想在矩形中绘制文本,而不是标签,用户可以用手指缩放矩形大小,最后,我将在图像上按比例绘制文本,我认为标签不是对于这些功能。
  • 我更新了我的答案。看看这是否对你有用。
猜你喜欢
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多