我有一个自定义UIView,我想在drawRect:方法中手动绘制。我希望视图只是一个黑色矩形,只有一个圆角和一个红色边框。我如何实现drawRect:绘制这个视图?iOS用底部边框绘制自定义视图
0
A
回答
1
我会做类似
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, rect);
CGContextSaveGState(context);
CGFloat cornerRadius = 10.0f;
CGFloat redBorderHeight = 4.0f;
CGFloat minx = 0.0f;
CGFloat miny = 0.0f;
CGFloat midx = rect.size.width/2;
CGFloat midy = rect.size.height/2;
CGFloat maxx = rect.size.width;
CGFloat maxy = rect.size.height;
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, nil, minx, midy);
CGPathAddArcToPoint(path, nil, minx, miny, midx, miny, 0);
CGPathAddArcToPoint(path, nil, maxx, miny, maxx, midy, 0);
CGPathAddArcToPoint(path, nil, maxx, maxy, midx, maxy, 0);
CGPathAddArcToPoint(path, nil, minx, maxy, minx, midy, cornerRadius);
CGPathCloseSubpath(path);
CGContextAddPath(context, path);
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextDrawPath(context, kCGPathFill);
CGContextRestoreGState(context);
midy = (rect.size.height-redBorderHeight)/2;
maxy = rect.size.height-redBorderHeight;
CGMutablePathRef path2 = CGPathCreateMutable();
CGPathMoveToPoint(path2, nil, minx, midy);
CGPathAddArcToPoint(path2, nil, minx, miny, midx, miny, 0);
CGPathAddArcToPoint(path2, nil, maxx, miny, maxx, midy, 0);
CGPathAddArcToPoint(path2, nil, maxx, maxy, midx, maxy, 0);
CGPathAddArcToPoint(path2, nil, minx, maxy, minx, midy, cornerRadius);
CGPathCloseSubpath(path2);
CGContextAddPath(context, path2);
CGContextSetFillColorWithColor(context, [UIColor blackColor].CGColor);
CGContextDrawPath(context, kCGPathFill);
+0
谢谢,我会试试这个。我在哪里可以了解更多关于这些绘图方法这是CoreGraphics?对不起,我是iOS开发新手。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2013-05-01 05:32:56
+2
苹果文档其实很不错https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007533-SW1 – joao 2013-05-01 05:39:11
相关问题
- 1. 使用自定义视图绘制边框Android
- 2. 在自定义图像视图周围绘制边框
- 3. iOS为部分视图绘制边界
- 4. 为UITableViewCell绘制虚线边框底部
- 5. 围绕自定义LinearLayout绘制边框
- 6. 绘制自己的自定义视图
- 7. 自定义视图不绘制位图
- 8. 在iOS中绘制自定义图形
- 9. iPhone - 创建自定义的UITableViewCell顶部和底部边框
- 10. 自定义视图和边框的UIBarButton
- 11. Android - 自定义视图边框
- 12. 绘图自定义视图
- 13. 在ArrayAdapter中绘制自定义视图
- 14. 绘制自定义视图背景
- 15. Android如何绘制自定义视图
- 16. 自定义绘制视图不显示
- 17. 绘制多个自定义视图
- 18. 自定义视图不能绘制
- 19. 绘制自定义视图中的线
- 20. 自定义组合框与绘制图像到datagrid视图
- 21. 文本下划线或边框底部自定义
- 22. 如何自定义android选项卡或底部边框?
- 23. iOS自定义视图控制器
- 24. 只绘制自定义视图的一部分
- 25. 自定义视图不会绘制在自定义视图组中
- 26. 的TextView与底部绘制自定义行
- 27. 如何使用子视图自定义UINavigationController自定义底部选项卡栏
- 28. 绘制自定义图表
- 29. 何处在自定义视图中设置绘图的边界
- 30. Xamarin iOS自定义视图
我试图创建一个CAShapeLayer并通过添加[self.layer addSublayer:shapeLayer]但我无法弄清楚如何创造更多不只是黑色的形状 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2013-05-01 05:31:40