创建按钮或图标以更改事件

时间:2010-12-17 19:35:16

标签: xcode ipad button colors

下午

我有一个被拒绝的iPad应用程序 - 一个是因为我在标题中有iPad而另一个因为我在我的应用程序中只使用一种颜色,他们希望看到更多。

我的应用程序允许我用手指在屏幕上绘制线条 - 我可以通过进入代码来改变颜色,但我可能需要做的是创建几个按钮,允许用户在屏幕上更改颜色。

我不知道如何做到这一点 - 有人做过这样的事吗?

伊恩

1 个答案:

答案 0 :(得分:0)

我很乐意帮助你,但你需要做一些自学,设置按钮是一项基本技能,但仍需要一些知识。我真的建议你在尝试将应用程序发送到苹果之前先等一下并了解更多信息。

但无论如何,看看名为“GLPaint”的苹果示例 他们通过设置一个切换绘图颜色的分段控制器来完全按照您的要求进行操作。重点关注从苹果示例中获取的以下代码。这段代码设置了UISegmentedControl(只是一组按钮):

  // Create a segmented control so that the user can choose the brush color.
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:
                                            [NSArray arrayWithObjects:
                                                [UIImage imageNamed:@"Red.png"],
                                                [UIImage imageNamed:@"Yellow.png"],
                                                [UIImage imageNamed:@"Green.png"],
                                                [UIImage imageNamed:@"Blue.png"],
                                                [UIImage imageNamed:@"Purple.png"],
                                                nil]];

    // Compute a rectangle that is positioned correctly for the segmented control you'll use as a brush color palette
    CGRect frame = CGRectMake(rect.origin.x + kLeftMargin, rect.size.height - kPaletteHeight - kTopMargin, rect.size.width - (kLeftMargin + kRightMargin), kPaletteHeight);
    segmentedControl.frame = frame;
    // When the user chooses a color, the method changeBrushColor: is called.
    [segmentedControl addTarget:self action:@selector(changeBrushColor:) forControlEvents:UIControlEventValueChanged];
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
    // Make sure the color of the color complements the black background
    segmentedControl.tintColor = [UIColor darkGrayColor];
    // Set the third color (index values start at 0)
    segmentedControl.selectedSegmentIndex = 2;

    // Add the control to the window
    [window addSubview:segmentedControl];
    // Now that the control is added, you can release it
    [segmentedControl release];

之后查看分段控制器附加到名为“changeBrushColor”的函数:

- (void)changeBrushColor:(id)sender
{
    CGFloat                 components[3];

    // Play sound
    [selectSound play];

    // Define a new brush color
    HSL2RGB((CGFloat)[sender selectedSegmentIndex] / (CGFloat)kPaletteSize, kSaturation, kLuminosity, &components[0], &components[1], &components[2]);
    // Defer to the OpenGL view to set the brush color
    [drawingView setBrushColorWithRed:components[0] green:components[1] blue:components[2]];

}

这是一个相当简单的例子,从那里开始,如果你有更多问题,请再次询问,我们会尽力帮助。

祝你好运 SHANI