많은 스토리 아웃이 스토리 보드 파일에 연결된 ItemDetailCell
으로 서브 클래스 화 된 사용자 정의 UITableViewCell
이 있습니다. 그 중에서도 UIView
서브 클래스는 PriorityView
이며 nib 파일의 UIView
(priorityStatusView)에 하나의 콘센트가 있습니다.사용자 정의 UIView의 사용자 정의 UIView
@property (weak, nonatomic) IBOutlet PriorityView *redPriorityView;
nib 파일 (PriorityView.xib)에서 File 's Owner Custom Class를 PriorityView에 연결했습니다. PriorityView.m
에서 나는 사용 drawRect
에서 nib 파일을로드하고 있습니다 :에서
NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"PriorityView" owner:self options:nil];
[self addSubview:[array objectAtIndex:0]];
을 내 테이블 뷰 컨트롤러의 cellForRowAtIndexPath
내가 redPriorityView.priorityStatusView
의 배경색을 설정하려고하지만, 처음에는 drawRect
그렇게 펜촉이로드를 호출하고 있습니다. 펜촉을 넣기 위해 initWithFrame
을 사용하지 않는 이유는 펜촉을 넣지 않는 것 이외에도 PriorityView
을 무효화하는 것입니다. 보기에 이미 IBOutlet
이로드되어 있기 때문에이 문제가 발생했습니다. 내가 전화했기 때문에 그것이 null이라는 것을 안다.
NSLog(@"%@, %@", detailCell.redPriorityView, detailCell.redPriorityView.priorityStatusView);
과 둘 다 반환 null. 그러나을 사용하여 펜촉을로드하면 두 로그가 모두 null이 아닙니다.
detailCell.redPriorityView.priorityStatusView.backgroundColor = [UIColor yellowColor];
가 나는 또한 아무 소용 setBackgroundColor
를 사용하여 시도했다 : 나는 지금 데 유일한 문제는 배경색이 사용 변경되지 것입니다. 실제로, redPriorityView
또는 redPriorityView.priorityStatusView
의 속성 중 아무 것도 나를 위해 바뀌지 않는 것 같습니다. 배경색은 단지 예일뿐입니다.
오랫동안 사용해 줘서 죄송 합니다만, 나는이 작업을 어렵게하고 있습니다. 어떤 도움을 주셔서 미리 감사드립니다!
내가 ItemDetailCell
의 방법을 사용하여 redPriorityView
의 속성을 설정하고 cellForRowAtIndexPath
통해 호출하지만 방법에 NSLog
라는 경우에도 속성이 변경되지 않는 시도
편집. 보기가 PriorityView
파일에 연결된 방식에 문제가있을 수 있습니다.
여기서 뭘하고 있는지 정확하게 말하기는 어렵지만 drawRect를 사용하는 것은 길은 아닙니다. 펜촉에서 나오는 것들을 위해서, 당신은 initWithFrame보다는 initWithCoder를 사용하고 싶습니다. 좀 더 기본적인 질문은, 왜 당신이 우선 ItemDetailCell 내부에 priorityStatusView를 생성하는 대신에 별도의 nib 파일을 사용하고 있는가하는 것입니다. – rdelmar
@rdelmar detailCell에서 뷰를 세 번 사용하고 있습니다. 마지막으로 서브 뷰와 탭 제스처 인식기를 사용할 것이므로 서브 클래 싱하면 UIView의 모든 기능을 제어하는 것이 더 쉬울 것이라고 생각했습니다. –
@rdelmar 또한 프로토 타입 셀에 제스처 인식기를 추가 할 수 없습니다. 그래서 사용자 정의보기를 사용하는 것이 나의 유일한 선택 인 것 같습니다. –