zoukankan      html  css  js  c++  java
  • IOS开发UI篇之──自定义UIActionSheet

    转载自:http://www.cnblogs.com/pengyingh/articles/2343200.html

    UIActionSheet类系IOS开发中实现警告框的重要的类,而在好多应用中,都对它进行了扩展,今天介绍一下自定义风格的UIActionSheet

    一、自定义CustomActionSheet类

      CustomActionSheet类继承UIActionSheet,具体的实现如下所示:

      1)CustomActionSheet.h头文件

    #import <Foundation/Foundation.h>

    @interface CustomActionSheet : UIActionSheet {

    UIToolbar* toolBar;

    UIView* view;

    }

    @property(nonatomic,retain)UIView* view;

    @property(nonatomic,retain)UIToolbar* toolBar;

    /*因为是通过给ActionSheet 加 Button来改变ActionSheet, 所以大小要与actionsheet的button数有关

     *height = 84, 134, 184, 234, 284, 334, 384, 434, 484

     *如果要用self.view = anotherview.  那么another的大小也必须与view的大小一样

     */

    -(id)initWithHeight:(float)height WithSheetTitle:(NSString*)title;

    @end

       

       2)CustomActionSheet.m实现文件

    #import "CustomActionSheet.h"

    @implementation CustomActionSheet

    @synthesize view;

    @synthesize toolBar;

    -(id)initWithHeight:(float)height WithSheetTitle:(NSString*)title

    {

    self = [super init];

        if (self) 

    {

    int theight = height - 40;

    int btnnum = theight/50;

    for(int i=0; i<btnnum; i++)

    {

    [self addButtonWithTitle:@" "];

    }

    toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];

    toolBar.barStyle = UIBarStyleBlackOpaque;

    UIBarButtonItem *titleButton = [[UIBarButtonItem alloc] initWithTitle:title 

                                                                            style:UIBarButtonItemStylePlain 

                                                                           target:nil 

                                                                           action:nil];

            

    UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 

                                                                            style:UIBarButtonItemStyleDone 

                                                                           target:self

                                                                           action:@selector(done)];

            

    UIBarButtonItem *leftButton  = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" 

                                                                            style:UIBarButtonItemStyleBordered 

                                                                           target:self 

                                                                           action:@selector(docancel)];

            

    UIBarButtonItem *fixedButton  = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace 

                                                                                          target:nil 

                                                                                          action:nil];

            

    NSArray *array = [[NSArray alloc] initWithObjects:leftButton,fixedButton,titleButton,fixedButton,rightButton,nil];

    [toolBar setItems: array];

    [titleButton release];

    [leftButton  release];

    [rightButton release];

    [fixedButton release];

    [array       release];

    [self addSubview:toolBar];

    view = [[UIView alloc] initWithFrame:CGRectMake(0, 44, 320, height-44)];

    view.backgroundColor = [UIColor groupTableViewBackgroundColor];

    [self addSubview:view];

        }

        return self;

    }

    -(void)done

    {

    [self dismissWithClickedButtonIndex:0 animated:YES];

    }

    -(void)docancel

    {

    [self dismissWithClickedButtonIndex:0 animated:YES];

    }

    -(void)dealloc

    {

    [view release];

    [super dealloc];

    }

    @end


    二、利用自定义的CustomActionSheet类显示提示框

    #import "TestActionSheetViewController.h"

    #import "CustomActionSheet.h"

    @implementation TestActionSheetViewController

    -(IBAction)btndown

    {

    CustomActionSheet* sheet = [[CustomActionSheet alloc] initWithHeight:284.0f 

                                                              WithSheetTitle:@"自定义ActionSheet"];

    UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0,50, 320, 50)];

    label.text = @"这里是要自定义放的控制";

    label.backgroundColor = [UIColor clearColor];

    label.textAlignment = UITextAlignmentCenter;

    [sheet.view addSubview:label];

    [sheet showInView:self.view];

    [sheet release];

    }

    @end

        这里的UILabel是作一个示例,在这个位置你可以换成你自己的内容即可;

    三、效果图

     
     
  • 相关阅读:
    香港两日游的那些事儿
    香港两日游的那些事儿
    Node.js下的Hello World
    Node.js下的Hello World
    Node.js下的Hello World
    WP SyntaxHighlighter 初探
    WP SyntaxHighlighter 初探
    WP SyntaxHighlighter 初探
    Google的代码高亮-code-prettify
    Java 18套JAVA企业级大型项目实战分布式架构高并发高可用微服务电商项目实战架构
  • 原文地址:https://www.cnblogs.com/niit-soft-518/p/4051700.html
Copyright © 2011-2022 走看看