从其他视图控制器更改 UIView(笔尖内)背景
Posted
技术标签:
【中文标题】从其他视图控制器更改 UIView(笔尖内)背景【英文标题】:Change UIView (inside nib) background from other viewcontroller 【发布时间】:2013-05-31 15:48:48 【问题描述】:有人知道如何从另一个视图控制器更改笔尖内的视图吗?我有一个从 nib 文件中的视图到视图类文件的出口,我有 @synthesize
视图类 .m
文件。然后我#import "InfoView.h"
(这是视图类)视图到视图控制器,最后我:
InfoView *infoView;
if (infoView == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"infoView" owner:self options:nil];
infoView = [nib objectAtIndex:0];
infoView.contentView.backgroundColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1];"
但我无法改变背景。
以前有没有人尝试过这样的事情? 感谢您的任何意见!
编辑:
已解决 UIColor
问题,但这不是问题。
【问题讨论】:
确保您在自定义视图中正确链接了插座,并确保您已在 xib 文件中指定自定义视图的类 @danypata 是的,已经这样做了 @PaperThick 使用 colorWithRed 方法时需要除以 255.0f 【参考方案1】:试试这段代码,我已经为你制作了演示应用程序。
创建文件CustomView.h
#import <UIKit/UIKit.h>
@interface CustomView : UIView
@property (nonatomic, strong) IBOutlet UILabel *titleLbl;
@end
CustomView.m。如果您使用的是 XIB
#import "CustomView.h"
@implementation CustomView
@synthesize titleLbl = _titleLbl;
- (id)initWithCoder:(NSCoder *)aDecoder
if(self = [super initWithCoder:aDecoder])
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil];
UIView *theEditView = [nibObjects objectAtIndex:0];
theEditView.frame = self.bounds;
[self addSubview: theEditView];
theEditView = nil;
return self;
将
fileOwner
的CustomView.XIB
设置为CustomView。并连接插座。 无论您想在哪里使用CustomView
,都可以在XIB
中使用UIView
对象,并将UIView
类重命名为CustomView
。在您的.h
文件中创建一个IBOutlet
,并将其与XIB
中的CustomView
对象连接。 现在这样做:
self.customViewObj.backgroundColor = [UIColor redColor];
self.customViewObj.titleLbl.text = @"Prateek";
在您的情况下,您的 customview
对象未创建。如果你打印你的对象,它会告诉你nil
。
【讨论】:
【参考方案2】:您错误地使用了-colorWithRed:green:blue:alpha
。他们期望一个介于 0 和 1 之间的浮点值。您需要这样做:
infoView.contentView.backgroundColor = [UIColor colorWithRed:50.0/255.0 green:50.0/255.0 blue:50.0/255.0 alpha:1];"
【讨论】:
感谢您的回答,但现在我使用标签进行了测试,但无法从视图控制器更改其上的文本,所以它一定是链接问题 你确定 infoView 是 != nil 吗?您在哪里将其添加为子视图?【参考方案3】:如果您尝试更改背景颜色.. 则执行以下操作:
infoView.backgroundColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1];
【讨论】:
以上是关于从其他视图控制器更改 UIView(笔尖内)背景的主要内容,如果未能解决你的问题,请参考以下文章
意外的 NSAutoresizingMaskLayoutConstraint 将 UIView 从笔尖添加到自动布局情节提要场景