如何使用Core Graphics绘制实例化的UIImageView内部(没有类文件覆盖drawrect with - 只是对实例的引用)?我想绘制一个固定宽度(例如,10像素直径)和某种颜色的简单点。
答案 0 :(得分:1)
如何使用Core Graphics ...绘制一个固定宽度的简单点(例如,10像素直径)和某种颜色[?]
0
,结束角度为2 * M_PI
。...在实例化的UIImageView中绘制(没有类文件覆盖drawrect with - 只是对实例的引用)
我知道在Mac上,这真的不是一个好主意,因为如果有任何东西将其设置为需要显示(或直接告诉显示),NSView可能会随时重绘,然后会破坏任何你想要的东西吸引它。不知道iPhone,但我注意到UIView没有NSView的lockFocus
和unlockFocus
等方法。
更多的建筑理由没有这样做:绘图是视图的专属领域,你建议打破这种排他性,并在(我假设)控制器中撒上一些绘图代码。在没有这个目的的对象中为某个目的分散代码是一条凌乱,无法使用的代码的路径。
最好为每个点创建子视图并将其添加为图像视图或子类UIImageView的子视图,为该子类的实例提供要绘制的点数组,并让子类的drawRect:
调用在绘制积分之前到super
。
然后,上述解决方案进入drawRect:
。
答案 1 :(得分:1)
您还可以将核心动画图层添加到视图中。将圆角半径设置为所需点的一半(假设为正方形),它将呈现为圆形。类似的东西:
CALayer *layer = [CALayer layer];
[layer setBounds:CGRectMake(0.0f, 0.0f, 10.0f, 1.0f)];
[layer setCornerRadius:5.0f];
[layer setMasksToBounds:YES];
[layer setBackgroundColor:[[UIColor redColor] CGColor]];
// Center the layer in the view.
[layer setPosition:CGPointMake([view bounds].size.width/2,
[view bounds].size.height/2)];
// Add the layer to your view
[[view layer] addSublayer:layer];
不是核心图形,但它很容易实现。
最诚挚的问候,