0

UITableViewから選択した色に基づいて異なる色の長方形を表示するアプリを作成しようとしています。

どのUITableView行が選択されたかを取得するのに問題はなく、NSLog内で、別のビューに切り替えると正しい色の名前が送信されていることがわかります。

しかし、「(void)drawRect:(CGRect)rect」メソッドを呼び出して長方形の描画を開始する方法がわかりません。

たとえば、UITableViewから「黒」の色を選択した場合、承認ボタンを押すと、新しいビューに移動し、「黒」の長方形が表示されます(ユーザーが「黒」の色を選択したため)

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString: @"switch"]) {

    //what is inside the chosenColors array?
    NSLog(@"%@ clicked", _chosenColors);

    //if the chosen color is black then do something
    if ([_chosenColors isEqual:@"Black"]) {
        NSLog(@"BLAH");
        //CGContextRef context = UIGraphicsGetCurrentContext();
        //[[UIColor blackColor] set];
        //RectangleView *gotColors = [[RectangleView alloc]initWithFrame:CGContextFillRect(context, CGRectMake(220, 20, 40, 40))];
        RectangleView *gotColors = [[RectangleView alloc]init];
        //RectangleView *gotColors = [[RectangleView alloc] initWithFrame:CGRectMake(220, 40, 40, 40)];
        //[self.navigationController pushViewController:gotColors animated:YES];

       // gotColors.CGContextFillRect(context, CGRectMake(220, 20, 40, 40));
        //changeClothes *new = [[changeClothes alloc]initWithNibName:@"changeClothes" bundle:nil];

    }

}

}

ご覧のとおり、私はたくさんのことを試してみましたが、どれも機能していません:(このコードはUITableViewController内にあり、[同意する]ボタンを押すと、データ(選択した色の名前)がUIViewControllerに送信されます。

色テーブルを埋めるためにNSMutableArrayから動的セルを作成しています。色が選択されている場合は、chosenColorsと呼ばれる別のNSMutableArray内に格納されます。

これが長方形を描く私の方法です

// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
   // Drawing code
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor blueColor] set];
//CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 0.5); //CGContextRef, Red, Green, Blue, Alpha
rect = CGRectMake(220, 20, 40, 40); //x, y, width, height
CGContextFillRect(context, rect); //CGContextRef, CGRect

}

このコードは、RectangleViewと呼ばれるUIView内にあります

私はiPhoneの開発にかなり慣れていないので、どんな種類の助けもいただければ幸いです。

4

1 に答える 1

0

必ず

  • サブクラスUIView
  • drawRectあなたが望むことをするためにそれをオーバーライドします
  • view提示されたViewControllerのプロパティを新しいクラスに設定します

ビューコントローラは、使用する色をビューに指示できるようになりました。

于 2012-08-24T23:26:00.817 に答える