iOS中的子视图MainView不显示在iOS中为什么?

时间:2016-05-03 13:21:46

标签: ios objective-c xib

问题是View已加载,但内部元素未加载或未出现原因?

xib图片为: enter image description here

和相应的.h是:

#import <UIKit/UIKit.h>
@interface DownloadView : UIView

@property (strong, nonatomic) IBOutlet UIView *view;
@property (weak, nonatomic) IBOutlet UILabel *downloadFilename;
@property (weak, nonatomic) IBOutlet UILabel *downloadpercentage;
@property (weak, nonatomic) IBOutlet UIProgressView *downloadprogressBar;
@property (weak, nonatomic) IBOutlet UIButton *downloadCancel;

@end

.m文件是:

#import "DownloadView.h"

@implementation DownloadView

-(id)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if(self){
        [[NSBundle mainBundle] loadNibNamed:@"DownloadView" owner:self options:nil];
        [self addSubview:self.view];
    }

    return self;
}

-(id) initWithCoder:(NSCoder *)aDecoder{
    self = [super initWithCoder:aDecoder];
    if(self){
        [[NSBundle mainBundle] loadNibNamed:@"DownloadView" owner:self options:nil];
        [self addSubview:self.view];
    }
    return self;
}

调用文件是:

polygonView = [[DownloadView alloc]initWithFrame:CGRectMake(0, height-170, width, 100)];


        polygonView.downloadFilename.text = @"Initiating Download...";
        [polygonView.downloadprogressBar setProgress:0];
        polygonView.downloadpercentage.text = @"0%";

        [window addSubview:polygonView];

问题是什么?

调试器更新:enter image description here

输出为:enter image description here

1 个答案:

答案 0 :(得分:1)

很遗憾,您无法像这样创建自定义UIView,但它不起作用。我对可重用的自定义组件使用不同的方法:

  1. 在情节提要板中创建新的视图控制器,更改其框架并进行自定义。
  2. 给它一个标识符
  3. 在想要在故事板中使用的所有地方,只需创建容器视图并嵌入自定义视图控制器。
  4. 如果您想以编程方式使用它。只需使用标识符从storyboard中实例化它。调整其视图框架的大小并将其添加为子视图。