2015-09-25 77 views
1

我使用UITableView製作日曆視圖(見下圖),每個UITableViewCell代表一個月有幾個子視圖,每個子視圖代表有一天我們稱它爲DayView ,每DayView包含子視圖UILabel來顯示月份的一天。到現在爲止,一切似乎都很好,並且UITableView的滾動順利。但經過我在添加此行DayView- (instancetype)initWithFrame:(CGRect)frameiOS UITableView在設置子視圖的layer.cornerRadius後不順利滾動

self.layer.cornerRadius = 5.0; 

的UITableView中的幀速率成爲滾動時要低得多。它根本無法追上我的手指。那麼最可能的原因是什麼?

順便說一句,我該怎麼做才能解決這類問題?

謝謝。

編輯:

cellForRowAtIndexPath方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *monthCellIdentifier = @"MonthCell"; 
    OPCalendarPageView *cell = [tableView dequeueReusableCellWithIdentifier:monthCellIdentifier]; 
    cell.manager = _manager; 
    cell.date = [self dateForIndexPath:indexPath]; 
    return cell; 
} 

而我使用的庫JTCalendarOPCalendarPageViewJTCalendarPageView一個定製版本,只是增加了一個月的第一天以上一個月的標籤。

screenshot

+0

爲什麼你需要圓角每天看法? – rmaddy

+0

請爲以下代碼添加-cellForRowAtIndexpath代碼: – Johnykutty

+0

@rmaddy我只是想讓日視圖的形狀不是矩形,而是發現了這個問題。 –

回答

1

首先,請提多一點,像你的子視圖或,而不是設置什麼其他屬性已設置像邊框寬度或masktobound或cliptobound或等

圓角半徑方案

其次, 我不知道,但我已經解決了我的問題與剛纔設置以下行

self.layer.masksToBounds = YES;

如果此搜索解決方案n不工作,然後嘗試以下鏈接,其中fknrdcls關於保護角落半徑對uitableview的負面影響給予了很好的回答。
基本上uitableview是uiscrollview的子類,所以下面的解決方案可能會解決你的問題。

UILabel layer cornerRadius negatively impacting performance

+0

這真的有訣竅,太棒了! –

相關問題