Выпуск подклассов UIView - PullRequest
       1

Выпуск подклассов UIView

0 голосов
/ 27 февраля 2011

Я создал свой собственный вид с его собственным заголовком и основным файлом и соответствующим пером (.xib):

Заголовочный файл

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface PointsBarView : UIView 
{
    IBOutlet UIView *pointsBarView; 
    IBOutlet UIView *pointsCounterView; 
    IBOutlet UILabel *pointsTotalLabel;
    UIImageView *handImageView;
    UIImageView *powerBarOutlineImageView;
}

@property (nonatomic, retain) IBOutlet UIView *pointsCounterView;   
@property (nonatomic, retain) IBOutlet UIView *pointsBarView;
@property (nonatomic, retain) IBOutlet UILabel *pointsTotalLabel;
@property (nonatomic, retain) IBOutlet UIImageView *handImageView;
@property (nonatomic, retain) IBOutlet UIImageView *powerBarOutlineImageView;

@end

Я синтезирую все в основном, а затем в другом классе UIViewController я пытаюсь загрузить это представление. Я установил его свойство:

@property (nonatomic, assign) IBOutlet PointsBarView *pointsBarView;

И добавляю так:

NSArray* nibViews =  [[NSBundle mainBundle] loadNibNamed:@"PointsBarView" owner:self options:nil];
    pointsBarView = [nibViews objectAtIndex: 0];    

    [[self view] addSubview:pointsBarView];

Как мне получить доступ к этим подпредставлениям в моем NIB? Они должны быть встроены в pointsBarView? (pointsBarView ссылается на основной вид NIB, а все остальные виды находятся в пределах pointsBarView). Должны ли они быть отдельными частями NIB, и мне нужно вызвать addSubview, чтобы отобразить каждый из них?

Я должен заметить, что если я НЕ подключу ни одно из свойств в PointsBarView, представление будет прекрасно отображаться с кодом в моем классе UIViewController Но я хочу иметь возможность взаимодействовать с каждым представлением и соответственно изменять свойства. Любая помощь будет отличной!

1 Ответ

1 голос
/ 27 февраля 2011

Общее правило: если вы загружаете его из кода, вы подключаете его в коде.

наоборот:

Если вы создаете экземпляр в IB, вы можете подключить розетки и действия в IB.

Здесь вы загружаете представление в коде, поэтому вам нужно вручную подключить их.

Если вы хотите иметь возможность соединять вещи в IB, добавьте UIVIew в IB и измените подкласс на PointsBarView. IB волшебным образом прочитает файл PointsBarView.h, и вы сможете соединить точки, цели и действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...