2014-01-19 6 views
0

UIView를 하위 클래스로 끌어 와서 내 응용 프로그램의 단일보기 컨트롤러에 여섯 개의 작은 상자를 그릴 수있게하려고합니다.이 아이디어 위에 레이블을 사용하여 텍스트를 표시합니다. 상자.Subclass 현재보기 컨트롤러에 상자를 표시하는 UIView

나는 새로운 목표 - C 클래스를 서브 클래 싱 UIView을 만들었습니다, 마지막으로 승 UIVie을 대체하여 내 스토리 보드에서 '보기'에 사용자 정의 클래스를 적용 상자 &의 크기/색상/위치를 설정 코드를 입력 ID 관리자의 Custom Class 섹션에있는 내 수업의 이름 (이 앱은 단일보기 앱 btw입니다.)하지만 앱을 실행할 때 이미 스토리 보드에 있었던 것 외에는 아무 것도 나타나지 않습니다. - 완전히 동일한 코드를 사용하면 빈 응용 프로그램 6 상자가 나타납니다! 그래서 내가 여기 ... 뭔가를 놓치고 생각하면 박스 내 코드의 일부입니다

// Only override drawRect: if you perform custom drawing. 
// An empty implementation adversely affects performance during animation. 
- (void)drawRect:(CGRect)rect 
{ 
    // Drawing code 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetRGBFillColor(context, 0.611, 0.505, 0.321, 0.8); 
    CGContextFillRect(context, CGRectMake(53, 271, 37, 52)); 
    CGContextFillRect(context, CGRectMake(141, 271, 37, 52)); 
    CGContextFillRect(context, CGRectMake(229, 271, 37, 52)); 
    CGContextFillRect(context, CGRectMake(52, 399, 37, 52)); 
    CGContextFillRect(context, CGRectMake(140, 399, 37, 52)); 
    CGContextFillRect(context, CGRectMake(229, 399, 37, 52)); 
} 

답변

0

당신은 사람 (문제를) 원하는 것을의 설명에서, 귀찮게하지 않습니다. 대신 레이블 (또는 텍스트 필드)을 하위보기로 추가하고 배경색과 레이어 테두리 속성을 사용하여 원하는 UI 모양을 만듭니다.

현재 코드에서 drawRect:은 super를 호출해야합니다.

+0

apple docs에 따르면 "UIView를 직접 하위 클래스로 만들면이 메서드를 구현할 때 super를 호출 할 필요가 없습니다. 다른 뷰 클래스를 서브 클래 싱하는 경우 구현의 어느 시점에서 super를 호출해야합니다." 그래서 [super drawRect] 필요 없음 – santhu

+0

색상을 설정하기 위해 레이블의 배경을 사용하는 것을 생각조차하지 못했습니다 ... 이유가 없습니다 ... 분명히 생각하는 것 이상 :(완벽하게 작동하지만 감사합니다 :) – user2820855