2017-09-26 1 views
0

하나의 view.xib 파일이 있고 버튼/텍스트 필드와 같은 모든 컨트롤을 보유한 작은 컨테이너 (컨테이너보기)가 있으며 모든 컨트롤 이벤트는 부모 view.xib 클래스 파일에서 처리됩니다.클래스 swizzling 신속하게 구현하는 방법?

필자의 요구 사항은 parent (예 : view.xib 완료 화면)를 추가/표시해야하는 곳입니다. 한 번 더 컨테이너보기 만 추가해야합니다. 컨테이너보기 만 추가/표시하면 컨트롤의 연결된 이벤트/메서드가 작동하지 않습니다.

그래서 내가 부모 view.xib 클래스와 컨테이너보기의 클래스를 변경할 수 있다면, 내 작품을 할 수 있다고 생각.

이렇게하면 처리 할 수있는 경우 나에게 다른 해결책이나 클래스 swizzaling을 제안 할 수 있습니다.

기본적으로 내가 jQuery과 셀의 컨테이너 (보기) 같은 내 코드에 컨테이너보기를 추가하고 내가 무엇을하려고 노력하는 것은 당신의 통제와 재사용 가능한 UIView의를 만드는 것입니다 생각

if let questionContainerView = cellQuestionView.viewQuestionContainer { 


    // let questionContainerView = cellQuestionView 
      cell.viewQuestionContainer.addSubview(questionContainerView) 
      questionContainerView.translatesAutoresizingMaskIntoConstraints = false 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.left, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.left, multiplier: 1, constant: 0)) 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.right, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.right, multiplier: 1, constant: 0)) 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.top, multiplier: 1, constant: 0)) 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.bottom, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.bottom, multiplier: 1, constant: 0)) 
      cellQuestionView.layoutIfNeeded() 
     } 
+0

문제를 더 잘 설명 할 수있는 코드를 추가 할 수 있습니까? –

+0

내 질문을 수정했습니다. –

답변

1

다음과 같다 버튼을 다른보기 컨트롤러에서 사용할 수 있습니다. Youtube의 위대한 튜토리얼은 iOS Basically: Reusable UIView - Programming in Swift (Part 1)입니다.

기본적으로 재사용 할 뷰에 전용 인 .Xib 파일을 만들고 해당 사용자 지정 뷰 클래스에서 처리하는 모든 동작이 필요합니다. 사용자 정의보기를 원할 때마다 Xib 파일에서 인스턴스를 생성하고 수동으로 하위보기로 컨테이너보기에 추가해야합니다.

행운과 행복 코딩!

- 편집 -

업데이트 된 코드는이 jQuery과의 일부가 될 것이라는 점을 보여주고 당신은있는 UITableViewCell의 상단에 사용자 정의보기를 추가하려고합니다. 대신 사용자 지정 UITableViewCell을 인스턴스화하고이를 테이블 뷰로 다시 사용할 수 있도록 등록해야합니다. 이 자습서는 다음과 같이 안내해야합니다. Custom UITableViewCell Tutorial - TableView with Images and Text in Swift

@IBAction을 사용자 정의 테이블 셀에 정의하고 버튼 셀렉터를 사용자 정의 셀의 펜촉에 추가 할 수 있습니다.

건배!

관련 문제