Любая другая опция для Отключения UIButton? - PullRequest
3 голосов
/ 08 февраля 2012

Я пытаюсь следующий код, чтобы UIButton выглядел Отключено:

btnYourButton.alpha = 0.6f;
btnYourButton.enabled = NO;

Пока создание включено (и, конечно, чтобы посмотреть, включено)

btnYourButton.alpha = 1.0f;
btnYourButton.enabled = YES;

Нет ли способа, с помощью которого я мог бы выполнить оба этих действия (сделать UIButton отключить / включить, а также сделать так, чтобы он выглядел как отключить / включить) в одном выражении?

Ответы [ 3 ]

4 голосов
/ 08 февраля 2012

Или вы можете попробовать создать подкласс UIButton, что-то вроде:

файл MyKindOfButton.h

#import <UIKit/UIKit.h>

@interface MyKindOfButton : UIButton

@end

файл MyKindOfButton.m

#import "MyKindOfButton.h"

@implementation MyKindOfButton

- (void)setEnabled:(BOOL)enabled {

    [super setEnabled: enabled];

    if (enabled) {
        self.alpha = 1.0f;
    } else {
        self.alpha = 0.6f;

    }
}

@end
1 голос
/ 29 марта 2014

Я знаю, что это очень старый вопрос, но вот очень хорошее решение.Просто создайте категорию UIColor и добавьте этот метод.

+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size
{
    UIGraphicsBeginImageContext(size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, color.CGColor);
    CGContextFillRect(context, (CGRect){.size = size});

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

+ (UIImage *)imageWithColor:(UIColor *)color
{
    return [UIImage imageWithColor:color size:CGSizeMake(1, 1)];
}

Теперь вы можете просто установить backgroundImage на любой цвет, который вы хотите, и он автоматически обработает отключенный вид для вас.

[button setTitleColor:[UIColor someColor] forState:UIControlStateNormal];
0 голосов
/ 27 января 2013

Другой вариант - изменить цвет текста (например, на светло-серый) для отключенного состояния.В редакторе раскадровки выберите «Отключено» во всплывающей кнопке «Конфигурация состояния» и используйте всплывающую кнопку «Цвет текста», чтобы изменить цвет текста.В коде используйте -setTitleColor: forState: message.

(я понимаю, что это более старый пост, но я думал, что другим этот вариант может понравиться)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...