iPad アプリ、XCode 4.5、iOS 6.1、ストーリーボードがあります。2 つの UIView が埋め込まれた UIView があります。最初の UIView (Calendar と呼ばれます) は上半分にあり、2 番目の UIView (Schedule と呼ばれます) は下半分にあります。上半分にカレンダーを作成し、下半分にグリッドを描画してスケジュールを表示します。
一連のイベントは、カレンダー (当月が完全に記入されている) とスケジュール (空のグリッドが表示されている) を含むシーンがユーザーに提示されることです。カレンダーで日付をタップすると、その日のスケジュールがスケジュールビューに表示されます。
この問題は-drawRect
、ユーザーがスケジュールに表示する日付を選択できるようになる前に、シーンが最初に表示されたときに呼び出されます。-drawRect 内から描画を行う必要があるため、 の外でスケジュールを記入する方法がわかりません-drawRect
。setNeedsDisplayInRect:を使用すると、必要なことを達成できるかどうか疑問に思っていましたか?
SO と Google を数日間調べましたが、この特定の質問に答えるものは何も見つかりませんでした。これはこの質問の複製ではなく、プロジェクトが再定義された後のフォローアップです。任意のアイデアをいただければ幸いです。
更新: setNeedsDisplayInRect を使用した私のコードは次のとおりです。
- (void) drawSchedule {
const float rectWidth = 120.0;
// draw detail for selected day for each staff member
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGContextSetLineWidth(context, 1.0);
CGContextSetRGBFillColor(context, 0, 0, 1, 0.3);
UIGraphicsBeginImageContext(self.bounds.size);
// draw customer name using bounds from CGRectMake
const float nameFontSize = 12;
UIFont *hourfont=[UIFont systemFontOfSize: nameFontSize];
[[UIColor blackColor] set];
[self setNeedsDisplayInRect: CGRectMake(160.0, 150.0, 120.0, 50.0)]; // mark as needs to be redrawn
// customer for this time slot
[@"John Doe" drawAtPoint:CGPointMake(114, 40) withFont:hourfont];
}