Создание кнопки или значка для изменения события - PullRequest
1 голос
/ 17 декабря 2010

После полудня

У меня есть приложение для iPad, которое было отклонено - одно из-за того, что у меня был iPad в заголовке, а другое, потому что я использую только один цвет в своем приложении, и они хотели бы больше не видеть.1003 *

Мое приложение позволяет рисовать линии на экране пальцем - я могу изменить цвет, перейдя в код, но мне, вероятно, нужно создать пару кнопок, которые позволят пользователю менять цвет наscreen.

Понятия не имею, как это сделать - кто-нибудь делал что-нибудь подобное?

Iain

1 Ответ

0 голосов
/ 17 декабря 2010

Я бы с радостью помог вам, но вам нужно научиться самостоятельно, установка кнопки - это базовый навык, но он все еще требует некоторых знаний.и я действительно советую вам немного подождать и узнать больше, прежде чем пытаться отправить приложения в apple.

но в любом случае, посмотрите на пример яблока под названием «GLPaint», они делают именно то, что вы просите, установивсегментированный контроллер, который переключает цвета рисунка.сосредоточиться на следующем коде, взятом из примера Apple.этот код устанавливает 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]];

}

довольно простой пример, начните там, и если у вас будет больше вопросов, задавайте еще раз, и мы постараемся помочь.

удачи, шани

...