多实例UIView仅在第一个实例中加载xib文件

时间:2014-05-20 08:03:05

标签: ios iphone objective-c uiview

我正在以CustomUIView显示的某些UIScrollView作为幻灯片进行工作,并且效果很好。但我有一个自定义UIView来显示每条新闻的内容。我的幻灯片工作,但我的自定义视图的XIB文件仅加载第一个,其他自定义视图为空。

这是我的代码:

我的ViewController.m

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:YES];

    int nbrNews = _sharedDataManager.rssfeeds.count;
    _sliderView.contentSize = CGSizeMake(self.view.frame.size.width*nbrNews, self.view.frame.size.height);

    self.pageControl.currentPage = 0;
    self.pageControl.numberOfPages = nbrNews;

    for (int i = 0; i< nbrNews; i++) {
         NewsView *newsView = [[NewsView alloc] initWithFrame:CGRectMake(i*self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height)];


        NSDictionary *news = [_sharedDataManager.rssfeeds objectAtIndex:i];
        newsView.titleLabel.text = [news objectForKey:@"title"];

        [_sliderView addSubview:newsView];

    }

}

CustomView.h

#import <UIKit/UIKit.h>

@interface NewsView : UIView

@property (weak, nonatomic) IBOutlet UILabel *titleLabel;


@end

CustomView.m

#import "NewsView.h"

@implementation NewsView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        self = [[[NSBundle mainBundle] loadNibNamed:@"OneNewsView" owner:self options:nil] objectAtIndex:0];
    }
    return self;
}

@end

这里结果如下: 编辑:我在自定义视图中更改视图的颜色。我们可以看到只有第一个真正装载了xib文件。我不知道为什么!!!!你能帮助我吗?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我通过添加:

来解决我的问题
  self.frame = frame; 

到我的customView.m initWithFrame