2015-03-04 3 views
1

im пытается подкласс uitableviewcell.подклассификация ячейки uitableview без использования uitableviewcontroller

на первый я использовал UITableViewController без проблем и все работает

хорошо. проблема была в том, что я не мог вставить статический вид сверху uitableview. поэтому i

начал использовать uiview + uitableview. я установить делегат и источник данных к моему uitable

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

2015-03-04 15:00:53.087 News[7410:750801] *** Assertion failure in -[SubcategoryTableViewCell _setHostsLayoutEngine:], /SourceCache/UIKit/UIKit-3318.16.14/NSLayoutConstraint_UIKitAdditions.m:2760 
2015-03-04 15:00:58.132 News[7410:750801] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Must translate autoresizing mask into constraints to have _setHostsLayoutEngine:YES.' 
*** First throw call stack: 
(0x182b59e48 0x19324c0e4 0x182b59d08 0x1839dd554 0x1873d6088 0x1873df4f0 0x1876f3c60 0x18771475c 0x1877eccc8 0x1877ecc68 0x1877ec984 0x1875c96f8 0x187832244 0x1877eccc8 0x1877ecc68 0x1877ec984 0x1875c96f8 0x1876f3c44 0x18771475c 0x1877eccc8 0x1877ec984 0x187714264 0x1877eccc8 0x1877ecc68 0x1877ec984 0x1877136ec 0x187446cac 0x1000292e8 0x187421854 0x1873e369c 0x1873e58f0 0x1873e582c 0x1873e5178 0x10003ad30 0x100344e30 0x100344df0 0x10034975c 0x182b116a0 0x182b0f748 0x182a3d1f4 0x18bbd35a4 0x18736e784 0x100029bf4 0x1938baa08) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

на этой части кода:

- (SubcategoryTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *reuseIdentifier = @"PlaceholderCell2"; 
    SubcategoryTableViewCell * sctvCell = [self.tableView dequeueReusableCellWithIdentifier:reuseIdentifier]; 
    if (sctvCell == nil) { 
     sctvCell= [[SubcategoryTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]; 
    } 

в раскадровке я установил мой uitableviewcell для моего класса custome. и он работает

отлично с контроллером uitableview.

это мой класс и подкласс код:

weird behavior on dynamic uitableviewcell height

+0

Это, кажется, ошибка с Xcode 6. Существует родственный обсуждение [здесь] (http://stackoverflow.com/questions/24217195/why-do-i-get-must-translate-autoresizing -mask-in-constraints-to-have-sethost) – spassas

+0

Да, я так думаю. но есть ли какая-нибудь работа !? –

+0

Отключение автозапуска в файле nib ячейки tableview может быть решением (?) – spassas

ответ

2

хорошо. проблема была в том, что я не мог вставить статический вид сверху uitableview.

Для этого существует несколько обходных решений.

  1. Поместите статический взгляд на window ([self.tableView.window addSubview:staticView]). Вам нужно будет управлять удалением статического представления до исчезновения контроллера табличного представления.

  2. Имейте внешний контроллер, который имеет статический вид. Контроллер внешнего вида имеет контроллер табличного представления в виде контейнера.


Вернуться к текущей проблеме. Когда вы заменили контроллер табличного представления на обычный контроллер просмотра, восстановили ли вы свою раскадровку? Простое изменение типа приведет к ошибкам.

+0

спасибо за ответ, да ive сделал это. даже я попробовал это в чистом проекте, чтобы увидеть результат, но все-таки получаю ту же ошибку. –

+0

Есть ли какой-нибудь пример для методов ур? не UITableViewController делает это невозможным? –

0

У меня возникла аналогичная проблема с ограничениями макета. Модифицируйте свой конструктор класса UITableViewCell, как показано ниже.

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
    { 
     self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
     if (self) { 
      self.translatesAutoresizingMaskIntoConstraints = NO; 
     // Your initializations here 
    } 
    return self; 
    } 
+0

Самостоятельно, как вы назначаете себя? –

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