2014-07-08 6 views
0

확장 된 tableviews 레이블을 숨기고 싶습니다. 셀이 확장되어 있고 축소되었을 때 버튼을 숨기고 싶습니다. 나는 라벨의 속성과 헤더의 버튼을 사용하여 다른 클래스에서 셀을 구현했습니다. 문제는 ExpandedViewController에서 이러한 셀 메서드를 호출 할 때 코드가 메서드로 들어가지만 속성 동작을 변경하지 않는다는 것입니다. 이 문제에 대해 저를 도와 줄 수 있습니까? 확장 된 tableviews 레이블이 확장되면 어떻게 숨 깁니까? - IOS

ExpandedCell.h

@property (nonatomic, retain) IBOutlet UILabel *lblTitle; 
@property (strong, nonatomic) IBOutlet UIButton *setTime; 

ExpandedCell.m

(void)setIfHidden:(BOOL)showIfHidden 
{ 
if (showIfHidden) 
{ 
[self.lblTitle setHidden:YES]; 
[self.setTime setHidden:NO]; 
} 
else 
{ 
[self.lblTitle setHidden:NO]; 
[self.setTime setHidden:YES]; 
} 
} 

ExpandedViewController.m

import ExpandedCell.h 

감사드립니다.

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
if ([indexPath isEqual:self.expandedIndexPath]) 
{ 
    return CELL_HEIGHT_EXPANDED; 
} 
else 
{ 
    return CELL_HEIGHT_COLLAPSED; 
} 
} 
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
self.expandedIndexPath = ([self.expandedIndexPath isEqual:indexPath]) ? nil : indexPath; 

ExpandedCell *hideCell = [[ExpandedCell alloc] init]; 
showIfHidden = YES; 

[hideCell setIfHidden:showIfHidden]; 

[tableView beginUpdates]; 
[tableView endUpdates]; 

[tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 
+0

https://github.com/bennyguitar/ 접기 클릭 https://github.com/iSofTom/STCollapseTableView 이것을 확인하십시오. – KethanKumar

답변

0

속성에는 IBOutlet이라는 라벨이 지정됩니다. [[ExpandedCell alloc] init]을 사용하여 셀의 새 인스턴스를 만듭니다. 인스턴스가 nib 파일로부터 언 아카이브되지 않기 때문에 존재하지 않습니다 alloc initIBOutlet의를 호출하여

  1. :

    당신은 몇 가지 문제가있다.
  2. hideCell을 만들고 나면 그 위에 메서드를 호출하면 아무 것도 유지되지 않으므로 파괴됩니다.
  3. 당신은, 당신이 액세스하고 기존를 업데이트해야합니다 새로운 세포를 생성해서는 안된다, 그래서 당신이 사용되어야한다 :