我找不到任何可以在剪輯子視圖的元素上找到任何顯示如何創建圓角(特別是在分組表格視圖中)的任何地方(搜索引擎,文檔,此處等) 。UITableViewCell圓角和剪輯子視圖
我有代碼,正確創建一個圓角的矩形4弧(圓角),已經在我的子類uitableviewcell中的drawRect:方法測試的路徑。問題在於子視圖碰巧是uibuttons的內部uiimageviews,不服從uitableviewcell服從的CGContextClip()。
下面是代碼:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat radius = 12;
CGFloat width = CGRectGetWidth(rect);
CGFloat height = CGRectGetHeight(rect);
// Make sure corner radius isn't larger than half the shorter side
if (radius > width/2.0)
radius = width/2.0;
if (radius > height/2.0)
radius = height/2.0;
CGFloat minx = CGRectGetMinX(rect) + 10;
CGFloat midx = CGRectGetMidX(rect);
CGFloat maxx = CGRectGetMaxX(rect) - 10;
CGFloat miny = CGRectGetMinY(rect);
CGFloat midy = CGRectGetMidY(rect);
CGFloat maxy = CGRectGetMaxY(rect);
[[UIColor greenColor] set];
CGContextBeginPath(context);
CGContextMoveToPoint(context, minx, midy);
CGContextAddArcToPoint(context, minx, miny, midx, miny, radius);
CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius);
CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius);
CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius);
CGContextClip(context);
CGContextFillRect(context, rect);
[super drawRect:rect];
}
由於這種特定的情況是靜態的(僅示出了按鈕1特定行),我可以編輯所使用的圖像的按鈕,以獲得所需的效果。
但是,我還有另一種情況是動態的。具體而言,包含大量數據庫驅動結果的分組表格,將顯示可能位於具有圓角的第一行或最後一行的照片,因此需要進行裁剪)。
那麼,是否有可能創建一個CGContextClip()也可以剪輯子視圖?如果是這樣,怎麼樣?
主要問題在這裏沒有答案。是否有可能得到CGContextClip()影響子視圖? – 2012-10-22 22:25:44
這就是這個簡單的... http://stackoverflow.com/a/20410857/294884這也是剪輯所有SUBVIEWS。 – Fattie 2014-09-01 14:41:50