iOS 自定义 View 文本标签为零

标签 ios objective-c uiview xib

现在我有一个名为 OTGMarkerDetailView 的自定义 View 类,它继承自 UIView 和相应的 .xib 。它只有两个文本标签,我已将文本标签链接到 OTGMarkerDetailView.m 中的文本标签 IBOutlets。

OTGMarkerDetailsView.h:

#import <UIKit/UIKit.h>

@interface OTGMarkerDetailView : UIView

- (void)setLabelsWithMainAddress:(NSString *)mainAddress subAddress:(NSString *)subAddress;

@end

OTGMarkerDetailView.m
#import "OTGMarkerDetailView.h"

@interface OTGMarkerDetailView ()

@property (nonatomic, strong) IBOutlet UILabel *mainAddressLabel;
@property (nonatomic, strong) IBOutlet UILabel *subAddressLabel;

@end

@implementation OTGMarkerDetailView

- (void)setLabelsWithMainAddress:(NSString *)mainAddress subAddress:(NSString *)subAddress {
    NSLog(@"%@", self.mainAddressLabel.text);
    self.mainAddressLabel.text = mainAddress;
    self.subAddressLabel.text = subAddress;
    NSLog(@"%@", self.mainAddressLabel.text);
}

@end

我使用 initWithFrame 将它作为 subview 加载到另一个 View 中。但是当我尝试设置文本标签值时,控制台总是记录 null,当我使用断点时,似乎 mainAddressLabel 和 subAddressLabel 本身是 nil 。我在将 xib 链接到 View 时做错了什么吗?我错过了什么?谢谢。

最佳答案

我找到了解决办法。我创建了一个自定义 UIView。

1.
我在 中附加了 Nib 文件initWithFrame 方法

CustomView *nibView;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil];
        nibView = [array objectAtIndex:0];
        [self addSubview:nibView];

    }
    return self;
}

您可以清楚地看到,我没有创建 UIView 的实例,而是创建了相同类类型的 nibView。

2.
现在创建 IBOutlet 属性并对其进行处理。在 customView.m 文件中。
@interface FTEndorsedExpandedView : UIView

     @property (retain) IBOutlet UILabel *label;

@end

3.
创建函数来设置标题或更改属性。 (在 customView.m 文件中)。使用 Nib 查看 访问属性而不是使用 自我标签
-(void)setLabelText:(NSString*)string{
    [nibView.label setText:string];
}

关于iOS 自定义 View 文本标签为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24855529/

相关文章:

iphone - Object-C调用C函数读取文件

ios - 在其父类(super class)初始化之后初始化 UIView init?

ios - 如何在松开按钮后立即看到新的视频层?

ios - iOS6 中 MKMapKit 的路由数据

objective-c - Objective-C - block 代码不按顺序执行?

ios - 向后滑动太快时 UIButton 的标题神秘消失

ios - 如何在某个 CGPoint 处创建 UIView?

ios - 当其他 View 增大或减小大小时调整 UIView 宽度

ios - 混合 xib 的 UITableViewCell 和以编程方式生成的 UITableViewCells

ios - Google Analytics session 计数怎么会大于屏幕计数?