我想实现对话框的对话框边界,以达到我需要对话框的大小。也许有一个更好的传统名称。如果有,如果有人编辑标题,那就太好了。

无论如何,我想这样做,这样我就可以进行任何大小的对话,而无需将边界艺术带到小型,大或古怪的不适合固定的视觉文物。我对这是如何完成的想法,但是不确定哪个对iPhone更好。我有几个问题。

1)我应该制作一个包含的视图对象,该对象基本上超载其绘制方法并在调用该方法时绘制它们应在适当比例的位置绘制,还是我应该将一个包含一个简单包含8个uiimageViews的视图对象构成?我怀疑,如果我需要像动画一样积极地扩展所得的对话类别,则后一种方法将无法使用。

1b)如果超载绘制是要走的方式,是否有人有一些示例代码或指向示例的链接,该示例演示直接从drawRect()中绘制图像?

2)通常更好地创建

a)3 x 3图像中的段位于图像的适当1x1网格中?如果是这样,从该图像的一部分中绘制到DrawRect中的目标视图(如果前面的假设是正确的,我应该使用DrawRect)是否易于使用?

b)在8个不同的文件中分别零件?

更新:要澄清,这个想法是采用任何定制的边界艺术,并能够伸展第二,第4,第6和8个单元格(在3x3细胞网格中),以形成任何规模的边框,并仅使用这些资产。仅伸展一个简单的图像会导致角落变形,因此我想根据需要伸展那些均匀的单元,并在角落上固定,以免失真。我以前已经看过这项工作,所以认为这可能是标准的事情,并且对它的标准命名除了我所说的。

无论如何,我被告知,将8个UIImageViews添加到一个容器中不会像在DrawRect中飞出的UIIMAGE那样有效,因此在将必要的转换应用于上下文以翻译和扩展Y之后,使用CGContextDrawImage()采取了该方法。因为该函数从图像的左下角绘制,但在左上角的Uiview上,图像在没有Y轴反转的情况下颠倒了。我注意到建议使用uiimage函数(例如drawatpoint)也可以使用uiimage函数,但由于uiimage绘制与uiviews相同的方向,因此它也可以使用。我将继续与前者进行实施,看看情况如何,但还有一个问题。

有人会碰巧知道哪种方法更具效率,更快的速度等?

有帮助吗?

解决方案

我不确定我会关注,但这是我答案的最佳镜头...

使用DrawRect:或将单个UIImageViews添加到父视图完全取决于您。 UIImageView为您提供了一些免费的封装功能,但否则它们就出现而言是相同的。

如果您确实想走DrawRect路线,则只需要使用UIImage的DrawAtpoint:方法即可。对您想要的位置进行数学,然后绘制它。您可以根据父视的尺寸计算要点。

就缩放而言,如果不进行缩放,就不可能调整这些图像的大小,因此我会提前计划,并使您的原件比您期望显示的大小。

希望有所帮助吗?

干杯

其他提示

如果您想要对话框上的边框,则假设该框是Uiview(或子类),请设置图层的边框属性,并让系统为您绘制边框。

#import <QuartzCore/QuartzCore.h> 
// ... 

view.layer.borderWidth = 2;
view.layer.borderColor = [UIColor whiteColor].CGColor; 
view.layer.cornerRadius = 0;  // 0=square corners, >0 for rounded
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top