2015-01-16 2 views
-4

세포를 채우는 tablview이 있습니다. 셀을 클릭하면 나는 실제적으로 채울 것입니다 textfields 제 질문은 y 좌표를 얻음으로써 사용자가 현재 경계에 위치한 위치를 기준으로 UITextField을 위치시킬 수 있습니까? 또는 UITextField을 고정 위치로 설정하여 테이블 뷰에서 아래로 스크롤하면 UITextField은 항상 같은 위치에 남아있게됩니다.고정 된 UITextField 만들기 - Obj C

두 가지 옵션 중 마음에 들지 않지만 가장 좋은 방법은 무엇입니까?

업데이트 :

오케이 여기 제가 묻는 바가 있습니다. tablview에 셀을 채우면 물리적으로 보이는 화면을 초과하여 다른 셀을 볼 수 있습니다. 그래서 내가 사용하는 경우 :

float width = [[UIScreen mainScreen] bounds].size.width; 
self.cardnameTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, width, 25)]; 

0y 위치를 =. 그러면 UiTableview의 상단에있는 0,0 위치에 배치되며 UITableView의 가장 왼쪽 상단에 위치합니다. 이제 내가 묻는 것은 물리적 화면의 경계를 초과하는 cell을 선택하여 스크롤하고 cell을 선택한 경우 UITextField이 가장 왼쪽 상단에 UITableView0,0의 가장 왼쪽에 채워집니다. 물리적 인 화면. UITextField 위치를 지정할 수 있도록 물리적 화면 y을 얻는 방법은 사용자가 항상 볼 수 있도록합니다.

+1

나는이 질문에서 당신이 무엇을 요구하고 있는지 이해하기가 어렵습니다. 어떤 방식으로 시각화 할 수 있습니까? –

+0

@ianmacdonald 좋아, 20 개의 세포가있는 테이블을보고 있다고 말할 수 있습니다. 모든 셀이 올바른지 보려면 화면을 스크롤하십시오. 당신이리스트의 맨 아래에있는 셀을 클릭하면, 당신은 당신의 y 좌표에 꽤 가까이 위치하게 될 것입니다. 내 질문은, 어떻게하면 사용자가 자신의 화면에서 볼 수있는 그 좌표를 얻을 수 있습니다. –

+0

'[UIView convertRect : fromView]'를 사용하여 셀 뷰의 좌표를 뷰 컨트롤러의 뷰 공간으로 변환 할 수 있지만 최종 결과를 얻는 더 좋은 방법이있을 수 있습니다. 이 'UITextField'가 사용되는 곳과 어디에 표시되어야하는지에 대한 그림을 그릴 수 있습니까? –

답변

0

좋아요. 알아 냈습니다.

[self.viewaddSubview:self.cardnameTextField];을 실행할 때 UITableView 내에 위치하게됩니다. 실제 화면의 가장 위의 좌표 인 y을 찾아야 만합니다. 하지만 [self.view.window addSubview:self.cardnameTextField];을 실행하면 실제 window으로 설정되어 거의 CSS의 기능을 제공합니다. position:fixed;은 정확히 내가 찾고있는 기능입니다.

+0

예. 이 점을 더 잘 이해하려면 뷰 계층 구조를 읽어야합니다. –

+0

@IanMacDonald 네, 제 담당자를 희생시키면서 그것을 발견했습니다. –

-1

귀하의 의견에도 불구하고, 귀하가 무엇을 요구하고 있는지 명확하지 않습니다.

셀의 위치를 ​​화면 좌표로 변환하는 방법을 묻는다면 꽤 쉽습니다. UIView는 한 뷰의 좌표계에서 다른 좌표계로 좌표를 변환하는 모든 방법을 제공합니다. 이 뷰는 2 개의 뷰가 동일한 뷰 계층 구조의 일부인 경우에만 작동합니다. 당신의 좌표계 볼 (컨텐츠 좌표계에있을 것입니다의보기와) 세포의 contentView.bounds.origin을 뷰 컨트롤러의 내용에 위치를 변환 할 수 있습니다

CGPoint cellOrigin = cell.contentView.bounds.origin; 

cellOrigin = [self.view convertPoint: cellOrigin fromView: cell.contentView]; 

위의 코드는 당신의 좌표를 줄 것이다 셀의 원점을 뷰 컨트롤러의 컨텐트 뷰 좌표로 나타냅니다.

당신이 물어 보는 질문이 아니라면 무엇을 묻고 있는지 묻는 질문을 업데이트해야합니다.

+0

내 업데이트를 확인하십시오. –

+0

누가 나를 싫어 했습니까? 그 이유는 무엇입니까? 내가 이해할 수있는 것을 바탕으로 (매우 모호한) 질문에 최선을 다했습니다. 나는 나의 이해에서 표를 놓친 것 같지만, 그건 거의 내 잘못이 아니야. –

관련 문제