大家好我正在尝试使用简单的类UIView创建我的AlertView。
使用以下代码
在Implementation所需文件中调用我的警报UTAlertView * alert = [[UTAlertView alloc] initWithTitle: @ "Hello how are you" message: @ "test message"];
alert.types = UTAlertViewTypeError;
[alert presentAlert];
[self.view addSubview: alert];
如您所见,要选择all'alert的颜色类型,请使用
alert.types = UTAlertViewType
我以为我做的一切都是正确的,但我看不出不同的颜色“类型”分配警报的UIView ......
你能告诉我我做错了什么吗?
这是.h文件
#import <UIKit/UIKit.h>
#import "UIColor+UTAlertView_Color.h"
typedef NS_ENUM (NSInteger, UTAlertViewType) {
UTAlertViewTypeSuccess,
UTAlertViewTypeError,
UTAlertViewTypeWarning };
@interface UTAlertView : UIView
-(id)initWithTitle:(NSString*)title message:(NSString *)message;
-(void)presentAlert;
@property(nonatomic, assign) UTAlertViewType types;
@end
这是file.m
@interface UTAlertView ()
@property (nonatomic, strong)UILabel *titleLabel;
@property (nonatomic, strong)UILabel *messageLabel;
@property (nonatomic, strong)UIImageView *alertIcon;
@property (nonatomic, strong)UIView *alertView;
@end
@implementation UTAlertView
@synthesize alertIcon;
@synthesize titleLabel, messageLabel;
@synthesize alertView;
@synthesize types;
-(id)initWithTitle:(NSString*)title message:(NSString *)message {
alertView = [self initWithFrame:CGRectMake(kPositionX, 0, kSizeW, 55)];
titleLabel = [[UILabel alloc] init];
titleLabel.textColor = [UIColor titleColor:1];
titleLabel.font = [UIFont systemFontOfSize:14];
titleLabel.text = title;
titleLabel.frame = CGRectMake(2, 3, 50, 10);
[self addSubview:titleLabel];
messageLabel.textColor = [UIColor messageColor:1];
messageLabel.font = [UIFont systemFontOfSize:14];
messageLabel.text = message;
return self;
}
-(UTAlertViewType)types {
switch (types) {
case UTAlertViewTypeSuccess:
alertView.backgroundColor = [UIColor successColor:1];
break;
case UTAlertViewTypeError:
alertView.backgroundColor = [UIColor errorColor:1];
break;
case UTAlertViewTypeWarning:
alertView.backgroundColor = [UIColor warningColor:1];
break;
default:
break;
}
return types;
} 我正在使用正确的Type枚举?我做错了什么? ..非常感谢你的帮助
UiView的背景是透明的
答案 0 :(得分:1)
执行此操作alert.types = UTAlertViewTypeError;
时,它与[alert setTypes: UTAlertViewTypeError]
相同。
如果您想让它更改背景,您需要使用-(void)setTypes:(UTAlertViewType)t {
方法而不是-(UTAlertViewType)types {
方法编写代码。