如何从视图控制器获取自绘视图中的文本

Posted

技术标签:

【中文标题】如何从视图控制器获取自绘视图中的文本【英文标题】:How to get text for in self drawn view from viewcontroller 【发布时间】:2014-06-06 15:24:53 【问题描述】:

我有带有文字的自绘视图:

NSString* text = @"text";

UIFont* font = [UIFont systemFontOfSize:14.f];

NSShadow* shadow = [[NSShadow alloc] init];
shadow.shadowOffset = CGSizeMake(1, 1);
shadow.shadowColor = [UIColor whiteColor];
shadow.shadowBlurRadius = 0.5;

NSDictionary* attirbutes =
[NSDictionary dictionaryWithObjectsAndKeys:
 [UIColor grayColor],   NSForegroundColorAttributeName,
 font,                  NSFontAttributeName,
 shadow,                NSShadowAttributeName, nil];

CGSize textSize = [text sizeWithAttributes:attirbutes];

CGRect textRect = CGRectMake(0,
                             0,
                             textSize.width, textSize.height);

textRect = CGRectIntegral(textRect);

[text drawInRect:textRect withAttributes:attirbutes];

在我的 ViewController 中,我想从另一个类中获取它并在我的 selfDrawnView 中绘制它。我该如何执行?

【问题讨论】:

【参考方案1】:

不太清楚你到底在问什么。如果您使用新的视图类将 UIView 子类化并覆盖 drawRect 方法,则需要添加一个属性来保存您正在绘制的文本。

然后在您的视图控制器中,您只需将文本传递给该属性并调用[myCustomView setNeedDisplay] 来强制重绘。

【讨论】:

以上是关于如何从视图控制器获取自绘视图中的文本的主要内容,如果未能解决你的问题,请参考以下文章

从asp.net mvc的部分视图中的文本框中获取值

如何从已解散的导航控制器中的文本视图中捕获最终值

使用 MVC 从视图中的隐藏文本框中获取数据

如何从 Codeigniter 中的视图获取控制器的 URL?

如何从 SKScene 获取和更改我的视图控制器中的变量

从主视图控制器访问模态视图控制器中的 UITextField 中的文本