私のアプリケーションでは、3 つのオブジェクトを含むクラス名がplayGrid
ありNSArray
ます。plays
NSUIntegers
rowCount
columCount
この例では、6 つの画像があり、それらを 2 列 3 行で表示しようとしています。これらのビューをポップオーバーに表示しようとしています。以前は色のブロックでこれを行うことができましたが、今は画像でやろうとしているので、ポップオーバーを正しく生成できません。以下にリストされているのは、色を表示する成功したポップオーバーの drawRect コードです。
UIImage
これを色の代わりに s で動作するように変換するにはどうすればよいですか?
以下の例では、rowCount
andcolumnCount
は作成しようとしているものと同じように 2 と 3 ですが、配列には色という名前が付けられ、6 つの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 に慣れていないので、ご協力いただきありがとうございます。