2011-03-23 4 views
0

나는 scrollview에 textview 및 단추를 추가 한 응용 프로그램에서 작업하고 있습니다. 데이터베이스의 데이터에 따라 배열을 사용하여 스크롤 뷰가 동적으로 생성됩니다. 이제 스크롤 뷰에 추가 한 버튼 클릭에 텍스트보기가 숨겨져 있어야합니다.스크롤보기에서 텍스트보기 숨기기

코드 .........

-load 스크롤 뷰 .....

- (공극) loadScrollView {

cxs=0; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"dreambuilder.sqlite"]; 
if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) 
{ 
    const char *sql; 

    sql = "select dname, dream from dream order by dorder"; 
    //btnNextDream.enabled = FALSE; 
    sqlite3_stmt *statement; 
    statement = nil; 
    if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) 
    { 

     sqlite3_bind_int(statement, 1, objAppdelDreamDetail.intEditDream); 
     while (sqlite3_step(statement) == SQLITE_ROW) 
     { 

      btnItem = [[UIButton alloc]init]; 
      btnItem.backgroundColor=[UIColor clearColor]; 
      txtViewDescription = [[UITextView alloc]init]; 
      CGRect rect; 
      rect.origin.x = ((myScroll.frame.size.width - 320) /2) + cxs ; 
      rect.origin.y = 0; 
      rect.size.height = 460; 
      rect.size.width = 320; 
      [btnItem addTarget:self action:@selector(actionShowDreamImage:) forControlEvents:UIControlEventTouchUpInside]; 
      btnItem.frame = rect; 
      [btnItem setImage:[UIImage imageWithContentsOfFile:[documentsDirectory stringByAppendingPathComponent:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]]] forState:UIControlStateNormal]; 
      NSString *s=[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)] ; 
      for(int i=0;i<[arrDream count];i++) 
      { 
       txtViewDescription.tag=i; 

      if ([s isEqual:@""]) { 
        txtViewDescription.frame=CGRectMake(rect.origin.x+15, 60, 300, 40); 
       }else { 
        CGSize textViewSize = [s sizeWithFont:[UIFont systemFontOfSize:18] constrainedToSize:CGSizeMake(300, 460) lineBreakMode:UILineBreakModeWordWrap]; 
        txtViewDescription.frame=CGRectMake(rect.origin.x+15, 60, 300, textViewSize.height+10); 
        txtViewDescription.text=s; 
       } 
       txtViewDescription.alpha = 0.5; 
       txtViewDescription.layer.cornerRadius=10.0; 
       txtViewDescription.font=[UIFont fontWithName:@"Helvetica" size:18]; 
       txtViewDescription.backgroundColor=[UIColor blackColor]; 
       txtViewDescription.textColor=[UIColor whiteColor]; 
       txtViewDescription.editable = NO; 
       txtViewDescription.scrollEnabled=FALSE; 
      } 
      [myScroll addSubview:btnItem]; 
      [myScroll addSubview:txtViewDescription]; 
      [btnItem release]; 
      myScroll.scrollsToTop = NO; 
      [txtViewDescription release]; 
      cxs += myScroll.frame.size.width; 

     } 
    } 
    sqlite3_finalize(statement); 

} 
else 
{ 
    sqlite3_close(database); 
    NSAssert1(0, @"Failed to open database with message '%s'.", sqlite3_errmsg(database)); 
} 

[myScroll setContentSize:CGSizeMake(cxs, [myScroll bounds].size.height)]; 
if (intOID=1) { 
    btnPrevDream.enabled = FALSE; 

} 
int page; 
if(objAppdelDreamDetail.intPageCount>0) 
{ 
    page=objAppdelDreamDetail.intPageCount; 
    //NSLog(@"%d",page); 

} 
else 
{ 
    page=objAppdelDreamDetail.intPageCount; 
    //NSLog(@"%d",page); 
} 
[myScroll setContentOffset:CGPointMake(320 * page, 0) animated:YES]; 

}

버튼 이벤트 ...........

,691,363,210

- (IBAction를) actionShowDreamImage (! flgFaded) (ID) 송신기 { 경우 { tbarFooter.hidden = TRUE; tbarHeader.hidden = TRUE; lblNavTitle.hidden = TRUE; lblNavEdit.hidden = TRUE; lblNavPls.hidden = TRUE; //txtViewDescription.hidden = TRUE;

for(int i=1;i<[arrDream count];i++) 
    { 
     [[myScroll viewWithTag:1] setHidden:YES]; 
     txtViewDescription.tag=i; 
     txtViewDescription.hidden=TRUE; 

    } 

} 
else 
{ 
    tbarFooter.hidden = FALSE; 
    tbarHeader.hidden = FALSE; 
    lblNavTitle.hidden = FALSE; 
    lblNavEdit.hidden = FALSE; 
    lblNavPls.hidden = FALSE; 
    txtViewDescription.hidden = FALSE; 
} 
flgFaded = !flgFaded; 

}

+0

당신은 작동하지 않는 것을 우리에게 말해 수 ? –

+0

@ Erik B .... 모든 코드가 잘 작동하고, 모든 텍스트를 숨기고 싶습니다.보기는 버튼 클릭 이벤트입니다. –

답변

0

변경 전용 버튼 클릭 이벤트 방법

.............

-(IBAction)actionShowDreamImage:(id) sender { 

if(!flgFaded) 
    { 
     tbarFooter.hidden = TRUE; 
     tbarHeader.hidden = TRUE; 
     lblNavTitle.hidden = TRUE; 
     lblNavEdit.hidden = TRUE; 
     lblNavPls.hidden = TRUE; 
     for(int i=1;i<[arrDream count];i++) 

{ 

for(UITextView *txtview in myScroll.subviews) 

{ 

if(txtview.tag==i) 
       { 
        txtview.hidden=YES; 
       } 
      } 
     } 

    } 
    else 
    { 
     tbarFooter.hidden = FALSE; 
     tbarHeader.hidden = FALSE; 
     lblNavTitle.hidden = FALSE; 
     lblNavEdit.hidden = FALSE; 
     lblNavPls.hidden = FALSE; 
     for(int i=1;i<[arrDream count];i++) 
     { 
      for(UITextView *txtview in myScroll.subviews) 
      { 
       if(txtview.tag==i) 
       { 
        txtview.hidden=NO; 
       } 
      } 

     } 
    } 
    flgFaded = !flgFaded; 
} 
관련 문제