如何写自定义的AlertView

效果

说明

考虑到后面的可定制性以及可维护性,本人用AbstractAlertView定义了AlertView抽象的基类,实现通过子类来完成.

注:这只是粗略的写了一个实现,并没有考虑到代码的合理性以及精确性.

源码

https://github.com/YouXianMing/AbstractAlertView

//
//  AbstractAlertView.h
//  AlertViewDemo
//
//  Created by YouXianMing on 15/10/15.
//  Copyright © 2015年 ZiPeiYi. All rights reserved.
//

#import <UIKit/UIKit.h>

@class AbstractAlertView;

@protocol AlertViewEventDelegate <NSObject>

@required
/**
 *  代理执行的事件
 *
 *  @param alertView alertView
 *  @param index     按钮编号
 */
- (void)alertView:(AbstractAlertView *)alertView buttonEventIndex:(NSInteger)index;

@end

@interface AbstractAlertView : UIView

/**
 *  响应事件的代理
 */
@property (nonatomic, weak)   id <AlertViewEventDelegate> delegate;

/**
 *  插入后显示的view
 */
@property (nonatomic, weak)   UIView   *insertView;

/**
 *  标题
 */
@property (nonatomic, strong) NSString *title;

/**
 *  副标题
 */
@property (nonatomic, strong) NSString *subTitle;

/**
 *  信息
 */
@property (nonatomic, strong) NSString *message;

/**
 *  按钮标题数组
 */
@property (nonatomic, strong) NSArray <NSString *> *buttonTitlesArray;

/**
 *  显示(在show的时候构建出view)
 */
- (void)show;

/**
 *  隐藏
 */
- (void)hide;

@end
//
//  AbstractAlertView.m
//  AlertViewDemo
//
//  Created by YouXianMing on 15/10/15.
//  Copyright © 2015年 ZiPeiYi. All rights reserved.
//

#import "AbstractAlertView.h"

@implementation AbstractAlertView

- (void)show {

}

- (void)hide {

}

@end

细节

时间: 2024-10-13 12:19:05

如何写自定义的AlertView的相关文章

log4net修改数据库连接字符串和写自定义信息

最近项目需要用log4net来写日志,因为整个平台式在sharepoint上,我们需要记录具体是哪个子站点发生的日志,因此需要再原来的log表里面添加一个自定义信息列.由于平台的安全性要求,我们需要对连接字符串加密.连接字符串的信息是在AdoNetAppender读取的,所以我们要扩展该类.而自定义消息我们需要扩展PatternLayout类.其实有关log4net的介绍网上已经很多了,如log4net.dll使用 具体的代码如下: #region Log helper public class

[android]我是这样写自定义Dialog的

1.前言 #####然而就先特么扯个犊子-##### * 其实,关于android的自定义dialog网络上很多文章.我也不知道我这篇会不会特别点~ 小渣渣我只想写点个人感觉有意义的东西. (其实也是不知道写啥啦,欢迎大家有想了解的知识点.或者想法可以私信或 者留言给本渣~ 个人感觉有意义的有兴趣的就写出来~hhhhhh ) 不扯犊子了-感觉扯犊子会被打- 2.概述 百度上各种自定义对话框很多,可是感觉都好乱呀呀呀呀.之前写自定义对话框的代码总是巴拉到一团,卧槽--看着就烦,改起来更烦-对于近视

使用log4net写自定义日志

在使用log4net写Web服务器端日志的时候,通常需要一些自定义的参数,比如请求的url,method,以及用户名等等,而log4net中默认的Log接口只提供了很少的参数.    在网上找的其他的解决方案,都是要重写很多地方,而且经常都是不全,让人很难理解,我反正是看不懂...    对俺们这些整天玩黑科技的人来说,自然要用一些不那么正常的方式来解决问题. 在这里,黑科技的意思是指绕过API或者直接修改API,其中带有一定的危险性的代码. 简单研究了一下log4net的源码(使用ILSpy反

教你怎样写自定义IP地址算法

通过IP地址可以看到算法规律,写成自定义IP地址,也可以把IP地址转为自定格式的IP地址.也可以用于加密一些明文数字.以下写正反算法: USE tempdb GO IF OBJECT_ID('fn_NrToChar') IS NOT NULL DROP FUNCTION fn_NrToChar GO /**************************************************************************************************

写自定义参数验证方式

本次发表文章距上次发表已近有两月有余,原因是两月前离开了上家公司(离开原因可能会在年终终结叙述,本篇暂且忽略),来到了现在所在的京东集团,需要花时间熟悉环境和沉淀一下新的东西,因此写文章也暂时没那么勤奋了,不得不说这次是机遇也是对自己职业生涯的一次重要决定. 话说本篇内容主要分享的是自定义方法参数的验证,参数的基本校验在对外接口或者公用方法时经常所见,用过hibernate的验证方式的朋友一定不会陌生,读完本篇内容能够很好的帮助各位朋友对自定义参数验证方式有一定了解: 自定义参数验证的思路 实战

判断一个数据是否存在于一个表中,Oracle中写自定义函数

create or replace function isExist(data in DataTypes) --DataTypes 为表中该数据的类型return Numberisv_flag number(2);v_data [DataTypes]; --表中数据的类型beginselect data into v_data from table_name where ....;if v_data not null then v_falg := 1;else v_flag :=0;end if

angularJS中如何写自定义指令

指令定义 对于指令,可以把它简单的理解成在特定DOM元素上运行的函数,指令可以扩展这个元素的功能 例如,ng-click可以让一个元素能够监听click事件,并在接收到事件的时候执行angularJS表达式 正是指令使得angularJS这个框架变得强大,并且正如所见,我们可以自己创造新的指令 指令声明方法 angular.module('freefedApp',[]).directive(name,function(){ return { restrict: String, priority:

继承UIView写自定义button

#import <UIKit/UIKit.h> @interface LPButton : UIView @property (nonatomic,strong) id target; @property (nonatomic,assign) SEL action; - (void)addTarget:(id)target action:(SEL)action; @end // // LPButton.m // loopdiner // // Created by yl on 15/12/8.

用python写自定义模板

模板语法有点像php !/usr/bin/env python """ #demo.py.html <html> <?py include head.py.html ?> <body> <?py extend test_for.py.html ?> <div> <pre> test if </pre> <?py if 2 > 1 ?> <p>Yes, it is&