自定义 UIAlertView iOS8 xCode6
Custom UIAlertView iOS8 xCode6
大家好,我正在尝试使用简单的 class UIView 创建自定义的 AlertView。
使用以下代码在实现所需文件中调用我的警报
UTAlertView * alert = [[UTAlertView alloc] initWithTitle: @ "Hello how are you" message: @ "test message"];
alert.types = UTAlertViewTypeError;
[alert presentAlert];
[self.view addSubview: alert];
如你所见,select all'alert 的颜色类型,使用
alert.types = UTAlertViewType
我以为我做的一切都是正确的,但我看不到不同的颜色"Types" 分配警报的 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的背景是透明的
当你这样做alert.types = UTAlertViewTypeError;
时,它与[alert setTypes: UTAlertViewTypeError]
相同。
如果你想让它改变背景,你需要在-(void)setTypes:(UTAlertViewType)t {
方法而不是-(UTAlertViewType)types {
方法中编写代码。
大家好,我正在尝试使用简单的 class UIView 创建自定义的 AlertView。
使用以下代码在实现所需文件中调用我的警报
UTAlertView * alert = [[UTAlertView alloc] initWithTitle: @ "Hello how are you" message: @ "test message"];
alert.types = UTAlertViewTypeError;
[alert presentAlert];
[self.view addSubview: alert];
如你所见,select all'alert 的颜色类型,使用
alert.types = UTAlertViewType
我以为我做的一切都是正确的,但我看不到不同的颜色"Types" 分配警报的 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的背景是透明的
当你这样做alert.types = UTAlertViewTypeError;
时,它与[alert setTypes: UTAlertViewTypeError]
相同。
如果你想让它改变背景,你需要在-(void)setTypes:(UTAlertViewType)t {
方法而不是-(UTAlertViewType)types {
方法中编写代码。