2014-02-11 189 views
0

我創建了一個UITableViewCell,裏面有一個UITextView。 我正在使用Json爲Textview獲取我的Html內容。我也使用DTCoreText。在這裏我cellForRowAtIndexPath:單元格內容(Textview)只觸摸單元格後更新

static NSString *CellIdentifier1 = @"NewsCell"; 

GTNewsCustomCell *newsCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1]; 

if(newsCell == nil){ 

    NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"GTNewsCustomCell" 
                 owner:self//transfer ownership to self 
                options:nil]; 
    newsCell = [nibViews objectAtIndex:0]; 
} 

newsCell.cellFrame = CGRectMake(10, 0, 300,40); 

newsCell.titleLabel.text = [[self.newsList objectAtIndex:indexPath.section]objectForKey:@"title"]; 

newsCell.messageTextView.textColor = [UIColor blackColor]; 
newsCell.messageTextView.backgroundColor = GTDefaultTextBackgroundColor; 
newsCell.messageTextView.editable = NO; 
newsCell.messageTextView.userInteractionEnabled = NO; 

newsCell.messageTextView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

NSString *htmlTag = @"<b></b>"; 
NSString *html = [NSString stringWithFormat:@"%@%@",htmlTag,[[self.newsList objectAtIndex:indexPath.section]objectForKey:@"previewMessage"]]; 


. 
. 
. 

return newsCell; 

問題的一部分原因是我的TextView的內容有時比TextView的尺寸更大。奇怪的是,當我觸摸textview,它更新自己,每個人都顯示正確....什麼可能是錯的?

這裏有一些截圖:

破碎的TextView: enter image description here

當我接觸到的細胞,文本的格式: enter image description here

編輯: 否我已經找到我的問題,但我不知道如何解決它。在我的自定義單元格.m文件我有變革的方法進行的單元尺寸寬度:

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    CGRect cellRect = self.bounds; 
    cellRect.size.width = self.cellFrame.size.width; 

    self.bounds = cellRect; 
} 

如果我刪除一切工作正常,但當然我的手機沒有正確的大小了......但我需要TableView和Cell之間從左到右的一些空間!

+0

你可以減少一些問題,如在找到最小數量的代碼重現問題? –

+1

我希望它更好地知道:) – Davis

回答

0

好吧我終於解決了這個問題:我刪除「layoutSubviews」的方法,並插入:

- (void)setFrame:(CGRect)frame { 
    frame.origin.x += 10; 
    frame.size.width -= 2 * 10; 
    [super setFrame:frame]; 
} 

現在我的文字總是有正確的大小和我的手機也有正確的尺寸!

0

我總是認爲最好不要試圖篡改UITableViewCell的框架/範圍。每個單元格的框架由UITableView設置,其寬度等於表格視圖的寬度,高度等於表格視圖委託人返回的值tableView:heightForRowAtIndexPath:,或者如果未實現,則表格視圖的rowHeight屬性。

如果您的自定義單元格的內容,即子視圖,不是您想要的地方,然後位置和大小這些在您的自定義layoutSubviews實現(或在你的筆尖)。自動佈局可以作爲一個選項。在你的例子中,你會佈置單元的messageTextView

相關問題