2011-02-15 59 views
0

我有一个tableView,在单击单元格时,tableView被调整大小,第二个视图滑入视图。第二个视图包含所选记录的详细信息...UILabel第二次只查看更新一次

非工作CODE

if(frame.size.height > 600) 
{ 

    CGRect detailFrame = StudyDetailView.view.frame; 

    self.tableview.autoresizingMask = UIViewAutoresizingNone; 
    detailFrame.origin.y = (frame.size.height-200); 
    detailFrame.size.height = 200; 
    [self.view addSubview:StudyDetailView.view]; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:.7]; 
     self.tableview.frame = CGRectMake(0,0,frame.size.width,frame.size.height-200); 
    [UIView commitAnimations]; 

    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:.2]; 
     StudyDetailView.view.frame = detailFrame; 
    [UIView commitAnimations]; 
} 

    StudyDetailView.ImageCount.text = [NSString stringWithFormat:@"%@", [[StudyListData objectAtIndex:indexPath.row] image_count]]; 
    [StudyDetailView.SeriesCount setText:[NSString stringWithFormat:@"%@", [[StudyListData objectAtIndex:indexPath.row] series_count]]]; 
    NSLog(@"This right after the view is set.. right?: %@",[NSString stringWithFormat:@"%@", [[StudyListData objectAtIndex:indexPath.row] series_count]]); 

} 

的ImageCount标签(在第二视图)仅在NSLog的继续显示更新一次,正确的值..

有什么建议吗?

工作代码

CGRect frame = self.tableview.frame; 
if(StudyDetailView == nil) 
{ 
    StudyDetailView = [[StudyListDetailController alloc] initWithNibName:@"StudyListDetailController" bundle:nil]; 
    [self.view addSubview:StudyDetailView.view]; 
} 
if(frame.size.height > 600) 
....... 

回答

0
cell.clearsContextBeforeDrawing = YES; 

试试这个看看它是否工作。如果没有,请给出更多的细节,比如在UIable中编写文本的功能

+0

我能够得到它排序。事实证明,我的代码创建了一个正确的其他视图..他们最初是在屏幕外,所以他们没有出现.. – Critter 2011-02-15 14:46:27

0

您已经创建了一个自定义类StudyDetailView在哪里添加了两个标签并创建了它们的属性。我认为StudyDetailView类有问题。 上述书面代码没有问题。

你可以发布你的代码来找出问题吗?

+0

我刚刚添加上面..第二个视图最初创建的屏幕。我的代码每次点击单元格时都会创建一个新视图,它们只是无法从屏幕上看到......我在第二个视图上添加了一个检查以确保只有一个视图。 – Critter 2011-02-15 14:50:08