2014-12-07 1 views
0

Итак, я использую проект, который я нашел на Github - , - и пытаюсь получить на нем ручку.NSLayoutConstraint, sub-просмотр UIView в ячейке просмотра таблицы не работает

По существу, то, что я хочу сделать, это создать плавучую иллюзию «Карт», которую приложение, подобное Facebook, имеет. То, как я это делал в прошлом, заключается в создании subview UIView, округлении углов и т. Д., Прежде чем помещать метку названия, имя автора внутри этого представления. Проблема в том, что я, как правило, делал это с раскадровки, в то время как этот пример программно выкладывает вещи.

После того, как он занялся этим, я подумал, что понял это. Это, как я создал - метод (пустоты) updateConstraints:

  • (недействительные) updateConstraints { если (self.constraintsUpdated!) {

    self.contentView.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.frame), CBPLargePostPreviewTableViewCellHeight); 
    
    NSDictionary *views = @{@"postCommentLabel": self.postCommentLabel, 
             @"postDateLabel": self.postDateLabel, 
             @"postImageView": self.postImageView, 
             @"postTitleLabel": self.postTitleLabel, 
             @"roundedBackground": self.roundedBackground}; 
    
    NSDictionary *metrics = @{@"padding": @(CBPPadding)}; 
    
    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(4)-[roundedBackground]-(4)-|" 
                           options:0 
                           metrics:metrics 
                           views:views]]; 
    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(4)-[roundedBackground]-(4)-|" 
                         options:0 
                         metrics:metrics 
                          views:views]]; 
    
    [self.roundedBackground addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(5)-[postTitleLabel]-(5)-[postImageView(150)]-(5)-[postDateLabel]-(5)-|" 
                         options:0 
                         metrics:nil 
                          views:views]]; 
    [self.roundedBackground addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(padding)-[postTitleLabel]-(padding)-|" 
                         options:0 
                         metrics:metrics 
                          views:views]]; 
    [self.roundedBackground addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(padding)-[postImageView]-(padding)-|" 
                         options:0 
                         metrics:metrics 
                          views:views]]; 
    [self.roundedBackground addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(padding)-[postDateLabel]-(>=0)-[postCommentLabel]-(padding)-|" 
                         options:0 
                         metrics:metrics 
                          views:views]]; 
    [self.roundedBackground addConstraint:[NSLayoutConstraint constraintWithItem:self.postCommentLabel 
                      attribute:NSLayoutAttributeCenterY 
                      relatedBy:NSLayoutRelationEqual 
                       toItem:self.postDateLabel 
                      attribute:NSLayoutAttributeCenterY 
                      multiplier:1.0f 
                       constant:0]]; 
    
    self.constraintsUpdated = YES; 
    } 
    
    [super updateConstraints]; 
    } 
    

Но при работающей I получить эту ошибку: [__NSPlaceholderDictionary initWithObjects: forKeys: count:]: попытка вставить нулевой объект из объектов [4] '

Я попытался создать границы для просмотра, но безрезультатно. Есть ли у кого-нибудь предложения? Если есть лучший подход к созданию эффекта, который я ищу, я также открыт для этого.

ответ

0

кажется, что вы используете roundedBackground в строках визуальном формате, но имеют фон ключ в ваших взглядах Dict.

+0

Извините, что (я изменил код, когда копирую/вставляю его, не очень хорошая идея). Тем не менее, даже когда это правильно, я все еще получаю ошибку, которую я описал. – schmorgledorf

 Смежные вопросы

  • Нет связанных вопросов^_^