iphone - 연결 - xib란




xcode의 nib 파일에서보기를 만드는 방법은 무엇입니까? (3)

다음 코드를 사용하여 뷰를 생성하고 페이징을 허용하도록 scrollview에 넣습니다.
코드가 잘 작동하지만 내가 할 수없는 것은 코코아 콩 파일에서 뷰를로드하는 것입니다.

즉 "initWithFrame"대신 "initWithNibName"을 사용하고 싶습니까?

   - (void)createPageWithColor:(UIColor *)color forPage:(int)page
     {
     UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0, 300,400)];
         newView.backgroundColor = color;
     [scrollView addSubview:newView];
    }

고마워요.


누락 된 것은 펜촉을로드 한 후 새 UIView의 프레임을 설정할 수 있다는 것입니다. 로드 / 초기화 시간만으로는 그럴 수 없습니다. 또한 아래 코드에서로드 함수를 조각으로 분해하므로 더 쉽게 작업 내용을 볼 수 있습니다.

관찰하십시오 :

NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"yournib" 
                                                     owner:self 
                                                   options:nil];
//I'm assuming here that your nib's top level contains only the view 
//you want, so it's the only item in the array.
UIView *myView = [nibContents objectAtIndex:0];
myView.frame = CGRectMake(0,0,300,400); //or whatever coordinates you need
[scrollview addSubview:myView];

UIScrollView가 실제로 스크롤하려면 해당 contentSize 속성을 스크롤 뷰 자체의 .frame 속성보다 큰 내부 크기의 상품으로 설정해야한다는 것을 잊지 마십시오.


다음과 같이 시도해보십시오 ( "iPhone Developers Cookbook", 174 페이지).

UIView *newView = [[[NSBundle mainBundle] loadNibNamed:@"yournib" owner:self options:nil] lastObject];

이것은 .xib의 단일 뷰 객체를 가정하지만 .xib가 더 복잡하면 수정할 수 있습니다.


이것은 오래된 게시물이지만, 별도의 파일로 UIView를 만들고 xib를 추가하여 앱의 여러 위치에서 사용할 수 있도록하고 싶었습니다 (거의 사용자 정의 테이블 뷰 셀로 사용하는 것과 거의 같습니다). 그리고 나는 그것을 옳게 생각하지 못했지만,이 게시물은 제가 원하는 결과를 얻는데 도움이되었습니다.

그래서 누군가가 같은 방식으로하고 싶다면, 이것은 내가 한 행동입니다 :

이것을 UIView의 .m 파일에있는 초기화 코드에 추가하십시오 :

- (id)initWithFrame:(CGRect)frame
{
    self = [NSBundle mainBundle] loadNibNamed:NSStringFromClass(self.class) owner:self options:nil][0];
    if (self)
    {
        self.frame = frame;
    }
    return self;
}

그런 다음 인터페이스 빌더 / xib 편집기에서 IBOutlets를 추가 할 수 있도록 UIView 용으로 만든 클래스를 지정해야합니다.

그것이 누군가 나를 돕기를 바란다, 나에게 조금 걸리게하게되는 사촌!





uiview