从 viewController 更改 UIColor 以在 UIView 类中使用
Posted
技术标签:
【中文标题】从 viewController 更改 UIColor 以在 UIView 类中使用【英文标题】:change UIColor from viewController to be use in UIView Class 【发布时间】:2012-10-19 21:14:53 【问题描述】:我正在尝试创建一个绘画应用程序,我看到一个带有颜色的变量并将其传递给 UIView,但我在 viewController 中有一个按钮来更改颜色,但我可以找到一种方法来传递更改UIview 的颜色:
ViewController(这个工作就好了):
paint *canvas=[[paint alloc]initWithFrame:frame];
[self.view addSubview:canvas];
canvas.colorSelected=colorSelected;
我有一个按钮来改变颜色选择:
(IBAction)colorSelection:(id)sender但是因为 canvas.colorSelected 的实例是在设置 canvas.colorSelected 之后释放的,所以我如何从 IBAction 更改颜色选择,因为如果我创建另一个实例,它不会指向 colorSelected 的相同指针。我的问题是如何从 viewController 的 ibaction 中更改 colorSelected?
【问题讨论】:
【参考方案1】:真的很难理解你在做什么 如果您想设置背景颜色,请执行以下操作:
canvas.backgroundColor = colorSelected
如果您想通过设置colorSelected
值来更改颜色
您必须覆盖 paint
类中的设置器
做这样的事情:
in Paint.m
- (void) setColorSelected:(UIColor*) color
_colorSelected = color;
self.backgroundColor = color;
现在当您执行canvas.colorSelected=[UIColor redColor];
时,您的画布将设置colorSelected
变量并同时更改背景颜色
【讨论】:
【参考方案2】:您需要在视图控制器中创建一个实例变量来保存对 paint 对象的引用。您无需像在您发布的代码中那样使用局部变量,而是将 paint 对象分配给实例变量。然后在您的按钮处理程序中,您可以调用实例变量上的colorSelected
属性来更新视图的颜色。
【讨论】:
举个例子?添加实例变量?如果您不知道如何将实例变量添加到您的类中,那么我建议您多学习一下 Objective-C 编程语言。学习该语言的基础知识将真正有助于您的编码工作。简短的回答是将实例变量添加到 .h 文件中的 @interface 部分。那么这个变量就可以在类中的任何方法中使用了。以上是关于从 viewController 更改 UIColor 以在 UIView 类中使用的主要内容,如果未能解决你的问题,请参考以下文章
从 Swift 中的其他类更改 ViewController 的对象
以编程方式从另一个 viewController 更改 tabBarController 索引
有没有办法从嵌入式 ViewController 更改 Tabbar 图像和操作?
从 UITableView 更改 viewController 时将可选值显示为“nil”