2013-06-17 2 views
1
  • 응용 프로그램 유형 : 모바일
  • 티타늄 SDK : 3.1.0.GA
  • 플랫폼 & 버전 : 아이폰 OS 6.1
  • 장치 : iOS 시뮬레이터
  • 호스트 운영 체제 : OSX 10.8.3
  • 티타늄 Studio : 3.1.0.201304151600

TableViewRow에서 텍스트 필드를 조건부로 표시하거나 숨기고 싶습니다. 이 작업을 수행하려면 행의 높이를 확장해야합니다. 다음 코드는 작동하지 않습니다. TableViewRow는 실제로 합금 컨트롤러입니다. 나는 그것이 움직일 수 없다는 것을 깨닫기 전에 먼저 애니메이션을 시도했다. 지금 나는 단지 높이를 바꾸려고 노력하고있다. 그리고 그것은 심지어 일하지 않고있다. 난 단지 아무 소용이 아니라 높이 속성을 설정과 함께 setHeight 메서드를 사용하여 시도했다. 아이디어가 있으십니까?TableViewRow의 높이를 어떻게 동적으로 변경합니까?

var notesVisible = false; 

function notes_click() { 

    if(notesVisible == false) { 
     Ti.API.info('expanding'); 
     $.row.height = 200; 
     // $.notes_container.setHeight(124); 
     notesVisible = true; 
    } else { 
     Ti.API.info('contracting'); 
     $.row.height = 75; 
     $.notes_container.setHeight(0); 
     notesVisible = false; 
    } 

}; 
+1

업데이트 : 이상적이나, 가장 좋은 "해결책"은 삭제하고 TableView 컨트롤에 행을 다시 추가하는 것입니다. 확실히 더러워 지지만 더 나은 대답이 될 때까지는 당분간 작동 할 것입니다. – ShawnCBerg

답변

2

두 가지 좋은 방법이 있으며, 모두 클릭 이벤트 수신기에서 수행해야합니다.

이 방법은 1) 하나의 방법은 직접 행의 "높이"변수를 변경하는 방법 2) 번째 새로운 행을 생성하고 새로운 행과 현재 행을 바꿀 것이다

방법 1 이상 간단하지만 사용중인 SDK의 버전에 따라 문제가 있다는 것을 알았지 만 3.1.0에서는 작동해야합니다. 두 가지 방법이 더 쉬울은 행

그래서 여기 클릭에 따라 행동하는 티타늄에게로 '클릭'의 EventListener에서 호출해야하는 방법 두 가지로

currentTableview.addEventListener('click',function(e) 
{ 
    // DO whatever your row is supposed to do when clicked 

    // Now lets change the height of the row to a new height, 200 in this example 
    e.row.height = 200 
} 

는, 그것은을 만드는 작업이 포함됩니다 예를하다 새 행 다음이 전화

currentTableview.updateRow(e.index,newlyCreatedUpdatedRow); 
+0

어떤 이유인지 나는 updateRow 메서드를 보지 못했습니다. 나는 deleteRow와 insertRowBefore를 호출했다. updateRow는 훨씬 더 깨끗합니다. 그 제안에 감사드립니다! tableView의 click 이벤트에서 높이를 변경하려고 시도했습니다. 높이를 결코 바꿀 수 없습니다. 예외도 없다. – ShawnCBerg

0

나는 그에게 몇 가지 중 하나지만 작동하지 않습니다 제공하는 솔루션이 요구 오래된 질문을 알고 난 이것에 대한 최선의 해결책은 재귀 함수 및 변경하여 생각과 현재의 행을 교체 행의 높이 그 행 내부에 전망의 가시성을 가지고 놀 필요가 있다면 희망적으로 누군가를 도울 것입니다.

관련 문제