IOS 自定义 UIDatePicker 背景图片
来源:互联网 发布:头发毛躁 知乎 编辑:程序博客网 时间:2024/06/08 10:10
IOS 中 默认的 UIDatePicker subViews 为只有一个UIView ,可以这样获得
UIView *v1 = [[datePicker subviews] objectAtIndex:0];
在这个UIView的subViews中有21层(3行时),27层(4行时):
( "<UIView: 0x5d65350; frame = (0 0; 312 180); autoresize = W+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d65380>>", "<_UIOnePartImageView: 0x5d65ce0; frame = (20 50; 1 48); opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x5d65d90>>", "<_UIPickerWheelView: 0x5d67790; frame = (21 0; 142 180); autoresize = W+TM+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d67840>>", "<_UIPickerViewSelectionBar: 0x5d67b70; frame = (21 86; 150 44); userInteractionEnabled = NO; layer = <CALayer: 0x5d67c20>>", "<UIPickerTable: 0x5d68160; frame = (21 0; 138 180); clipsToBounds = YES; opaque = NO; autoresize = W+TM+H; layer = <CALayer: 0x5d677d0>>", "<_UIOnePartImageView: 0x5d68640; frame = (21 0; 142 180); opaque = NO; autoresize = W+TM+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d60de0>>", "<_UIOnePartImageView: 0x5d67bd0; frame = (21 65; 142 47); opaque = NO; autoresize = W+TM+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d68340>>", "<_UIOnePartImageView: 0x5d68470; frame = (171 50; 2 48); opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x5d684a0>>", "<_UIPickerWheelView: 0x5d684d0; frame = (173 0; 40 180); autoresize = W+TM+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d68500>>", "<_UIPickerViewSelectionBar: 0x5d68530; frame = (173 86; 48 44); userInteractionEnabled = NO; layer = <CALayer: 0x5d68560>>", "<UIPickerTable: 0x5d68940; frame = (173 0; 36 180); clipsToBounds = YES; opaque = NO; autoresize = W+TM+H; layer = <CALayer: 0x5d68590>>", "<_UIOnePartImageView: 0x5d68b70; frame = (173 0; 40 180); opaque = NO; autoresize = W+TM+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d68c40>>", "<_UIOnePartImageView: 0x5d68d10; frame = (173 65; 40 47); opaque = NO; autoresize = W+TM+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d68d40>>", "<_UIOnePartImageView: 0x5d68d70; frame = (221 50; 2 48); opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x5d68da0>>", "<_UIPickerWheelView: 0x5d68dd0; frame = (223 0; 68 180); autoresize = W+TM+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d68e60>>", "<_UIPickerViewSelectionBar: 0x5d68e90; frame = (223 86; 76 44); userInteractionEnabled = NO; layer = <CALayer: 0x5d68ec0>>", "<UIPickerTable: 0x5d68ef0; frame = (223 0; 64 180); clipsToBounds = YES; opaque = NO; autoresize = W+TM+H; layer = <CALayer: 0x5d690d0>>", "<_UIOnePartImageView: 0x5d69130; frame = (223 0; 68 180); opaque = NO; autoresize = W+TM+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d69230>>", "<_UIOnePartImageView: 0x5d69290; frame = (223 65; 68 47); opaque = NO; autoresize = W+TM+H; userInteractionEnabled = NO; layer = <CALayer: 0x5d692c0>>", "<_UIOnePartImageView: 0x5d69340; frame = (299 50; 1 48); opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x5d69370>>", "<_UIPickerViewTopFrame: 0x5d5ef60; frame = (0 0; 312 180); opaque = NO; autoresize = W+H; layer = <CALayer: 0x5d48a00>>")
最低层为 一个 UIView,我们可以通过下列语句 获得 ,并且 可以改变背景色
UIView *v3 = [[v1 subviews] objectAtIndex:0 ];v3.backgroundColor = [UIColor redColor];
之后 为一个UIOnePartImageView 对象,在UIKit的头文件中定义如下,通过这个更改背景色失败,不知为何?继续探索中。。。
/* * Generated by class-dump 3.1.1. * * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2006 by Steve Nygard. */#import <UIKit/UIView.h>@class UIImage;@interface UIOnePartImageView : UIView{ struct CGRect _fromRect; UIImage *_image;}- (void)dealloc;// IMP=0x32412104- (void)drawRect:(struct CGRect)fp8;// IMP=0x324121a0- (void)setFromRect:(struct CGRect)fp8;// IMP=0x32412184- (void)setImage:(id)fp8;// IMP=0x3241215c@end
之后从 第3层 到 第20层为 18层,分为 3个部分,包含 3 列,但是这不分不可更改 见属性 userInteractionEnabled = NO;
最后第21层为 系统自带的那个 黑色边框 ,可以通过下面的代码获得,并设置为 透明
UIView *v2 = [[v1 subviews] objectAtIndex:20];v2.alpha = 0.0;
最后 ,也是最重要的,自定义图片样式,创建一个UIImageView,如下面这样添加在最上面的22层,就可以啦
UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(-4, -34, 320, 218)]; img.image = [UIImage imageNamed:@"bg.png"]; img.alpha = 1.0; [v1 addSubview:img];
记住,如果你的图片为透明的话 一定要把第21层的 黑色方框设置为透明啊
- IOS 自定义 UIDatePicker 背景图片
- iOS 自定义UIDatePicker
- ios自定义年月UIDatePicker
- iOS:自定义UItableview背景图片
- iOS自定义UIDatepicker日期选择器视图
- ios-UIDatePicker
- IOS UIDatePicker
- IOS UIDatePicker
- iOS学习之自定义弹出UIPickerView或UIDatePicker(动画效果)
- iOS学习之自定义弹出UIPickerView或UIDatePicker(动画效果)
- ios 自定义弹出UIPickerView或UIDatePicker(动画效果)
- iOS 自定义UIDatePicker日期选择器视图 —— HERO博客
- IOS 5 自定义导航条背景图片
- ios 自定义导航栏背景图片和颜色
- IOS 自定义导航栏背景图片和颜色
- iOS 背景图片。按钮高亮自定义背景
- 自定义简单的UIDatePicker
- Swift 自定义 UIDatePicker
- Winform开发框架之系统重新登录、自动登录实现
- 多线程示例代码
- Win32 API编程笔记(转)
- java调用SAP RFC函数 2
- POJ 3608 Bridge Across Islands(两个凸包最近距离,旋转卡壳)
- IOS 自定义 UIDatePicker 背景图片
- 关于xml解析错误的杂记
- linux下设置Tomcat自启动
- 基于C/S的网盘设计(JAVA)
- Android 十大调试方法
- jquery插件的写法
- js、document.createElement()的用法
- struts2 iterator标签详解
- ASP.NET常见模块:在线文件管理模块的设计与开发