在我的应用程序中,我有一个类名playGrid
,其中包含三个对象,一个NSArray
名为 的图像plays
,以及两个用于弹出框中将使用的行和列的数量NSUIntegers
rowCount
。columCount
对于这个例子,我有 6 张图像,我试图将它们显示在 2 列和 3 行中。我试图在弹出窗口中显示这些视图。以前我可以用颜色块来做到这一点,但现在我正在尝试处理图像,我无法正确生成弹出框。下面列出的是我的 drawRect 代码,用于显示颜色的成功弹出框。
我如何将其转换为使用UIImage
s 而不是颜色?
在下面的示例中,rowCount
andcolumnCount
是 2 和 3,就像我们试图制作的那样,但数组名为 colors,包含六个UIColor
项目。
- (void)drawRect:(CGRect)rect {
CGRect b = self.bounds;
CGContextRef myContext = UIGraphicsGetCurrentContext();
CGFloat columnWidth = b.size.width / columnCount;
CGFloat rowHeight = b.size.height / rowCount;
for (NSUInteger rowIndex = 0; rowIndex < rowCount; rowIndex++) {
for (NSUInteger columnIndex = 0; columnIndex < columnCount; columnIndex++) {
NSUInteger colorIndex = rowIndex * columnCount + columnIndex;
UIColor *color = [self.colors count] > colorIndex ? [self.colors objectAtIndex:colorIndex] : [UIColor whiteColor];
CGRect r = CGRectMake(b.origin.x + columnIndex * columnWidth,
b.origin.y + rowIndex * rowHeight,
columnWidth, rowHeight);
CGContextSetFillColorWithColor(myContext, color.CGColor);
CGContextFillRect(myContext, r);
}
}
}
我知道我不需要颜色或CGContextSetFillColorWithColor
线条之类的某些东西,但是我如何myContent
用图像替换,这似乎是我必须做的,但我无法成功地做到这一点。再次感谢您的帮助,因为我是 Objective C 的新手。