2017-02-14 3 views
0

Как добавить пользовательский вид в верхней части коллекции? Я хочу разработать пользовательский вид с помощью Xcode пользовательского интерфейса Я добавил мой взгляд в раскадровке контроллера представления, но вид коллекции покрывает его поэтому я добавить настраиваемое представление в viewDidLoadКак добавить пользовательский вид в JSQMessagesViewController

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self addViewOnTop]; 
    } 
} 
-(void)addViewOnTop { 

    UIView *selectableView = [[UIView alloc]initWithFrame:CGRectMake(0, 60, self.view.bounds.size.width, 40)]; 
    selectableView.backgroundColor = [UIColor redColor]; 
    UILabel *randomViewLabel = [[UILabel alloc]initWithFrame:CGRectMake(20, 10, 100, 16)]; 
    randomViewLabel.text = @"RandomView"; 
    [selectableView addSubview:randomViewLabel]; 
    [self.view addSubview:selectableView]; 
} 

этот код выполняется успешно, но, как я могу загрузить вид при помощи Xcode Interface Builder или загрузить .xib файлу

теперь я это

@implementation chatViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [SVProgressHUD dismiss]; 
    self.collectionView.collectionViewLayout.sectionInset = UIEdgeInsetsMake(70, 0, 0, 0); 
    self.collectionView.dataSource = self; 
    self.collectionView.delegate= self; 
    messages = [NSMutableArray array]; 
    [self addMessages]; 
    self.collectionView.collectionViewLayout.incomingAvatarViewSize = CGSizeZero; 
    self.collectionView.collectionViewLayout.outgoingAvatarViewSize = CGSizeZero; 
    self.topContentAdditionalInset = 70.0f; 
    UITapGestureRecognizer* tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleCollectionTapRecognizer:)]; 
    [self.collectionView addGestureRecognizer:tapRecognizer]; 
    self.collectionView.semanticContentAttribute = UISemanticContentAttributeForceLeftToRight; 
    [self addViewOnTop]; 
} 
-(void)addViewOnTop { 
    commentsheader *test = [[commentsheader alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 70)]; 
    [self.view addSubview:test]; 

} 

, но это не помогло

ответ

0

Если я понимаю реальную проблему, с которой вы сталкиваетесь, это то, что ваш customView покрывает collectionView вместо изменения раскадровки, просто отрегулируйте вложение вида коллекции.

Добавить UIEdgeInset позволит вам просматривать ваши сообщения в соответствии с новым видом вызова это в viewDidLoad()

self.collectionView?.collectionViewLayout.sectionInset = UIEdgeInsets(top: 40, left: 0, bottom: 0, right: 0) 
+0

нормально сначала его не мой вопрос, но теперь это мой вопрос, но независимо от того, я есть, отредактируйте question @daniel leonard –

+0

Что случилось с вашим вопросом? –

0

Вы должны попробовать currentView.bringSubview(toFront: <UIView instance>)

0

Проблема заключалась в том, что навигационная панель скрывает вид , Но приведение его на фронт не решить проблему , но делать это не зафиксировал его: в viewDidLoad

self.edgesForExtendedLayout = UIRectEdgeNone; 
Смежные вопросы