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 制作动态单元格来填充颜色表,如果选择了颜色,它会存储在另一个名为 selectedColors 的 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将呈现的视图控制器的属性设置为新类

视图控制器现在可以告诉视图使用哪种颜色。

于 2012-08-24T23:26:00.817 回答