Кнопка iPhone UIB не будет отключена после включения = НЕТ - PullRequest
2 голосов
/ 08 апреля 2010

Я делаю пример HelloPoly из класса Stanford и пытаюсь отключить кнопки увеличения / уменьшения, когда это уместно

#import <Foundation/Foundation.h>
#import "PolygonShape.h"

@interface Controller : NSObject {
    IBOutlet UIButton *decreaseButton;
    IBOutlet UIButton *increaseButton;
    IBOutlet UILabel *numberOfSidesLabel;
    IBOutlet UILabel *nameLabel;
    IBOutlet UILabel *angleLabel;
    IBOutlet UILabel *minSidesLabel;
    IBOutlet UILabel *maxSidesLabel;

    IBOutlet PolygonShape *polygonShape;
}


-(IBAction)decrease:(id)sender;
-(IBAction)increase:(id)sender;
-(void)updateUI;

@end

и затем в моем Controller.m ни один из эффектов на кнопку увеличения или уменьшения не принимает

-(IBAction)decrease:(id)sender
{
    //NSLog(@"-");
    polygonShape.numberOfSides--;
    if (polygonShape.numberOfSides == polygonShape.minimumNumberOfSides)
        decreaseButton.enabled = NO;
    else 
        decreaseButton.enabled = YES;

    self.updateUI;

    increaseButton.enabled = NO;
    increaseButton.highlighted = YES;
    increaseButton.hidden = YES;

}

1 Ответ

2 голосов
/ 08 апреля 2010

Вот как я справился с этим так давно, немного более многословно, чем ваша версия, но в основном то же самое, что и в комментарии, проверяйте ваши соединения в IB и везде придерживайтесь YES / NO.

- (IBAction)decrease:(id)sender {
if ([shape numberOfSides] >= minNumberOfSides) {
    [shape setNumberOfSides:[shape numberOfSides]-1];
    NSLog(@"Decrease!");
}
[self updateInterface];
}

- (IBAction)increase:(id)sender {
if ([shape numberOfSides] <= maxMumberOfSides) {
    [shape setNumberOfSides:[shape numberOfSides]+1];
    NSLog(@"Increase!");
}
[self updateInterface];
}

- (void)updateInterface {
numberOfSidesLabel.text = [NSString stringWithFormat:@"%d", [shape numberOfSides]];
nameLabel.text = [NSString stringWithFormat:@"%@", [shape name]];

if ([shape numberOfSides] == minNumberOfSides) {
    decreaseButton.enabled = NO;
}
else {
    decreaseButton.enabled = YES;
}

if ([shape numberOfSides] == maxNumberOfSides) {
    increaseButton.enabled = NO;
}
else {
    increaseButton.enabled = YES;
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...