前兩周玩 “王者農藥” 上癮了,好久沒發文了。游戲誤事啊,卸載!--_-- ... 我朋友要實現的一個UI。說系統的數字鍵盤底部帶有字母。UI寶寶不高興,讓他把字母去掉....
沒辦法,又有誰會去和一個UI講代碼呢。然后他,然而他,他居然!...讓我給他寫個demo (づ????)づ
//使用起來很方便
_yg_numberKey = [[YGNumberKeyboardView alloc]init];
_yg_numberKey.delegate = self;
self.yg_textField.inputView = _yg_numberKey;
//實現代理方法
-(void)keyboard:(YGNumberKeyboardView *)keyboard didClickButton:(UIButton *)button WithText:(NSMutableString *)string;
- (BOOL)textFieldShouldClear:(UITextField*)textField;//當輸入框的clearButtonMode = UITextFieldViewModeWhileEditing 時候,需要實現以下這個代理
-
DEMO 完整示例
控制器.m文件中
//完整的示例
@interface ViewController ()<UITextFieldDelegate,YGNumberKeyboardDelegate>
/**輸入框*/
@property (nonatomic, strong)UITextField * yg_textField;
/**自定義數字鍵盤*/
@property (nonatomic, strong)YGNumberKeyboardView * yg_numberKey;
/**提交按鈕*/
@property (nonatomic,strong) UIButton * submitBtn;
@end
- 設置屬性
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"【code_小馬】";
self.view.backgroundColor = [UIColor colorWithRed:240/255.0 green:145/255.0 blue:146/255.0 alpha:1];
[self setMytextFied];//數字鍵盤
}
- 初始化
-(void)setMytextFied
{
self.submitBtn = [[UIButton alloc] initWithFrame:CGRectMake(WIDTH/2 - 50, 200, 100, 20)];
[_submitBtn setTitle:@"submit" forState:UIControlStateNormal];
[_submitBtn setBackgroundColor:[UIColor cyanColor]];
[self.view addSubview:_submitBtn];
[self.submitBtn addTarget:self action:@selector(onSubmitBtnClicked) forControlEvents:UIControlEventTouchUpInside];
self.yg_textField = [[UITextField alloc]initWithFrame:CGRectMake(50, 120, WIDTH-100, 30)];
self.yg_textField.placeholder = @"【code_小馬】自定義數字鍵盤";
self.yg_textField.delegate = self;
self.yg_textField.borderStyle = UITextBorderStyleRoundedRect;
self.yg_textField.textColor = [UIColor colorWithRed:241/255.0 green:198/255.0 blue:194/255.0 alpha:1.0];
self.yg_textField.clearButtonMode = UITextFieldViewModeWhileEditing;
[self.view addSubview:self.yg_textField];
_yg_numberKey = [[YGNumberKeyboardView alloc]init];
_yg_numberKey.delegate = self;
self.yg_textField.inputView = _yg_numberKey;
}
- 實現代理方法
-(void)keyboard:(YGNumberKeyboardView *)keyboard didClickButton:(UIButton *)button WithText:(NSMutableString *)string
{
self.yg_textField.text = string;
NSLog(@"%@",string);
}
-(void)onSubmitBtnClicked
{
// [self.yg_textField resignFirstResponder];
[self.yg_textField endEditing:YES];
}
//點擊textField右側x按鈕,會走這個代理
- (BOOL)textFieldShouldClear:(UITextField*)textField
{
//刪除了textField里邊的所有內容的時候要記得將num_string置為@“”
_yg_numberKey.num_string = [[NSMutableString alloc]initWithString:@""];
return YES;
}
- 自定義鍵盤的.h文件
#import <UIKit/UIKit.h>
@class YGNumberKeyboardView;
@protocol YGNumberKeyboardDelegate <NSObject>
@optional
-(void)keyboard:(YGNumberKeyboardView *)keyboard didClickButton:(UIButton *)button WithText:(NSMutableString *)string;
@end
@interface YGNumberKeyboardView : UIView
/**輸入*/
@property (nonatomic,strong)NSMutableString * num_string;
@property (nonatomic,assign)id<YGNumberKeyboardDelegate>delegate;
@end
- 自定義鍵盤的.m文件
#import "YGNumberKeyboardView.h"
#define WIDTH [UIScreen mainScreen].bounds.size.width
#define HEIGHT [UIScreen mainScreen].bounds.size.height
#define BOARD_H 216
@implementation YGNumberKeyboardView
-(instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setKeyBoardContent];
[self setNumberButtons];
}
return self;
}
-(void)setKeyBoardContent
{
self.frame = CGRectMake(0, HEIGHT-BOARD_H, WIDTH, BOARD_H);
self.num_string = [NSMutableString string];
self.backgroundColor = [UIColor lightGrayColor];
// self.backgroundColor = [UIColor colorWithRed:254/255.0 green:221/255.0 blue:120/255.0 alpha:1];
}
-(void)setNumberButtons
{
NSArray *titleArray = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"X", @"0", @"delete", nil];
int index = 0;
float button_width = (WIDTH - 30)/3;
float button_height = (BOARD_H - 40)/4;
for(int i = 0; i < 4; i++)
for(int j = 0; j < 3; j++)
{
float x = 5 + j*(button_width + 10);
float y = 5 + i*(button_height + 10);
UIButton *button = [self addButtonWithTitle:titleArray[index]
Frame:CGRectMake(x, y, button_width, button_height)
BackImg:[UIImage imageNamed:@"btn"]
HighImage:[UIImage imageNamed:@"btnback"]] ;
[button addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside];
[button setBackgroundColor:[UIColor whiteColor]];
[self addSubview:button];
index++;
}
}
-(UIButton *)addButtonWithTitle:(NSString *)title Frame:(CGRect)frame
BackImg:(UIImage *)backImg HighImage:(UIImage *)highImage
{
UIButton * btn = [UIButton buttonWithType:(UIButtonTypeCustom)];
btn.frame = frame;
[btn setTitle:title forState:(UIControlStateNormal)];
[btn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside];
[btn setBackgroundColor:[UIColor whiteColor]];
// [btn setTitleColor:[UIColor colorWithRed:230/255.0 green:28/255.0 blue:100/255.0 alpha:1] forState:(UIControlStateNormal)];
[btn setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];
btn.layer.masksToBounds = YES;
btn.layer.cornerRadius = 4.0;
// [btn setBackgroundImage:backImg forState:(UIControlStateNormal)];
[btn setBackgroundImage:highImage forState:(UIControlStateHighlighted)];
[self addSubview:btn];
return btn;
}
- (void)onClick:(UIButton *)button
{
//刪除按鈕
if([button.currentTitle isEqualToString:@"delete"]) {
if (self.num_string.length > 0) {
[self.num_string deleteCharactersInRange:NSMakeRange(self.num_string.length-1, 1)];
} else {
return;
}
}else{
[self.num_string appendString:button.currentTitle];
}
//代理
if ([self.delegate respondsToSelector:@selector(keyboard:didClickButton:WithText:)]) {
[self.delegate keyboard:self didClickButton:button WithText:self.num_string];
}
}
//于是就有了今天這篇文章了,通過上邊的代碼大家也看到了,我注釋掉了一些美化界面的代碼,如果打開注釋的話,那就是下邊的樣子了
//哈哈哈哈,還可以吧
美文分享
晌午時光
【第十四集】
他拿過我手里借的書,說:“肖伯納?你也喜歡戲劇嗎?” “還好。”他自然的態度仿佛我們是故交,這讓我略略放松。“太好了!”他高興地說:“我還怕你對這些不感興趣呢!” “你有什么事?”他興奮的樣子讓我匪夷所思。 他說:“如畫,叫你如畫可以吧?我注意你很久了!加入戲劇社吧!我覺得沒有人比你更適合的了!” “戲劇社?”我懷疑的看著他問,)“對不起,我……” 我已經習慣拒絕陌生。 “千萬別拒絕!”他打斷我的話,“我和他們打了賭的,要是你不來,我就糟糕了。” “打賭?”這樣的字眼讓我倍感新鮮,如風從來不和我談這些的。 “是啊,”他不好意思地笑了笑,“我發誓要把你拉入戲劇社,不然……” 他苦笑著一下:“這個月的活動經費就都歸我了。” 他英俊臉上的古怪表情讓我不禁笑了起來。 他也笑了起來,說,“如畫,你比我想象中的更美好!” 陽光透過窗戶照在他的臉上,他笑容干凈而燦爛,在恍惚間我仿佛見到了如風小的時候,那時他的笑容也是這樣的,讓人渾身都暖洋洋的。可是,現在的如風卻沒有了那樣的純真,他的眉目間更多的是陰霾的戾氣。 “那么就這樣說定了!下次活動我會叫上你!”他把書還給了我,跟我道別。 “等一下!”我叫住他。 他期盼的看著我說:“怎么?” “你……你叫什么?”我問。 他微微一愣,顯然有些吃驚我竟然不認識他。的確,元燮是我們這一屆的風云人物,恐怕除了我,T大里沒人不認得他。 “我們同班啊!我叫元燮!” “元燮……”我默念。 “來我這里吧!”他自信滿滿的說,“我不會讓你逃走的!” 他向我揮了揮手,跑出去的時候高興的跳了起來。 這個男孩給我留下了很好的印象,他親切而真誠,至少讓我覺得安全。這是我第一次和正常的男生打交道,小時的記憶太過久遠,而長大之后我所遇到的,則全部不是一般人。 阿福,帶給了我無盡的傷害;程豪,讓我有一種莫名的畏懼;阿九濱仔他們又是混黑幫的小弟。而如風呢,和他們全都不一樣,他的一舉一動每字每句都能牽動我的神經,我隱隱的漸漸清楚這是為什么,不管怎么說這恐怕更談不上普通。 元燮則是無數普通大學生中的一個,但卻是我從未接觸過的。我像躲在殼子里的蝸牛,偷偷的向外伸出了一點觸角. 比起元燮,阿瞳來的更加直接。放學之后,我在校門口被她攔住。 “夏如畫!”她叫住我,“我等你很久了,你們學校好大!” 眼前的女孩個子不高,長的也算不上漂亮,但是她的眼睛卻很明亮,炯炯有神充滿靈氣,我對她有種特別的感覺。 “你是誰?”我問。 阿九走了過來,警惕的看著她。 “我叫蘇瞳,我認識魏如風!”阿瞳冷冷的對阿九說。 我和阿九都吃了一驚。 “你的手袋是我撿到的。”阿瞳說。謝謝你。”我明白了些。 “有時間的話,一起吃飯吧!”阿瞳微笑的邀請我。 “不可以!風哥要我每天放學就送如畫姐回家!”阿九替我拒絕。 阿瞳狠狠的瞪了阿九一眼,她突然想到了什么,笑著說:“也可以阿!那么就去你家吧!” “這……”我猶豫,我沒遇到過這種情況。 “好了,畢竟我也是如風的朋友啊!”阿瞳盯著我,眼神有些奇怪。 “好吧!”我搶在阿九之前說,她意味深長的樣子和提及如風的語調使我毅然決然的應允了這個不速之客。 阿九憤憤的替她打開車門,阿瞳滿意的上了車。 在自家的客廳里我卻格外得不自在,我隱隱的感覺阿瞳在觀察我。 “可以給我倒杯茶么?”阿瞳說。 “哦。”我起身。 “你沒有朋友?”阿瞳一邊環顧四周一邊說。 “沒有。”我遞給她紅茶。 阿瞳饒有興趣的看著我說:“那你平時做什么?不去逛街嗎?” “不去,”我說,“我從目錄上買東西。” “家里只有你們姐弟倆么?”阿瞳說。 “是的。” “他這么晚都不回來,就只有你一個人?” “是的。” “你不做些什么嗎?” “看書,”我奇怪她怎么問了這么多瑣碎的問題,“或者睡覺。” 阿瞳一副了然于心的樣子,她說:“嗯,看看相本可以嗎?我想看看如風小時候的樣子。” “相本?”我愕然,我只有很小時候的幾張照片,而如風則根本沒有,我們甚至沒有一張合影。 “沒有。”我突然有點高興,因為只有我一個人知道如風小時候的樣子,阿瞳不會知道了。 阿瞳好像看穿了我的想法,她笑了笑說:“你們的生活還真不正常!” 她的不以為然讓我失落。 “如果沒什么事……”我實在不想跟她相處了,不知為什么我有點忌憚她。 “有事!”她打斷我,“我來找你是有事的。” 我莫名的緊張起來。 阿瞳站起了身,她向前走了幾步,猛然轉過身說:“我喜歡魏如風!” 她盯著我,“我想應該告訴你。” 我驚訝的望著她,她微笑著跟我對視。 我的心口開始強烈的絞痛,奇怪的是還伴隨著一點點的恐懼。 阿瞳不一樣,她和阿珊,Linda,秀秀都不一樣,我清楚地明白這一點。 大門突然打開,如風走了進來。 “你來干什么!”如風沖阿瞳喊。 “沒什么,”阿瞳毫不畏懼的說,“跟你姐姐聊聊天。”她特別強調了“姐姐”這兩個字。 如風就像被點了穴,呆呆地站在原地。 “我不吃飯了,如畫姐!我會再來看你的,再見!”她沖我眨了眨眼,拿起書包瀟灑地走了出去。 我和如風面面相覷。 我們兩個人的世界,突然變得有點擁擠。 盡管我是如此的不情愿,阿瞳還是堂而皇之地出現在了我面前。 “如畫姐!借廚房用用好嗎?我想做些點心!”阿瞳跑來我家說。 “做什么點心?”我對此刻看上去天真無邪的她無可奈何。 “提拉米蘇!”她開心的說,“這是我最拿手的!可以給你留一塊,不過只能一個!” “送人么?”我問。 “嗯!我想送去給如風!”她說,一點也不含蓄羞澀。 我的心又疼了一下。 “他不喜歡吃甜食。”我迫不及待的說,心里暗暗企盼她的失落。 然而阿瞳卻沒露出一點失落的表情,她看著我,仿佛是我說出了什么驚天之語。 “你居然這么不了解他!”阿瞳搖搖頭。 “胡說!”我討厭她的那種明了一切的樣子,這讓我覺得心虛,“他從小就不喜歡!我們在一起他都不吃的!豆沙的小粽子,還有蛋糕,點心,巧克力!他都拿給我,給他都不要!” 我大聲地喊,使勁的證明阿瞳是錯的。 “原來是因為你。”阿瞳居然笑了,“是因為你喜歡,所以他才說自己不喜歡吧!” 我呆呆地望著她,如風是這樣的溫柔對我,然而最先感受到這種無微不至的竟然是阿瞳而不是我。 烤箱“叮咚”一聲響起,提拉米蘇的香味飄了出來。 “你走吧!”我不想再看她一眼,)“我一會還要去上課!” “有些難受是嗎?但是很遺憾,我的確比你了解他。”阿瞳說,“也更了解你們之間的那種可笑的感情!” “你走!”我徹底的憤怒了。阿瞳一字一句地說,“在意大利語里,提拉米蘇就是‘帶我走’的意思。” 如風躲避著阿瞳的注視,低下頭走到窗邊。 “你不喜歡這樣的生活吧,這根本不是你想要的不是嗎?看看你,每個表情每個動作恨不得每句話都透露出來你不快樂,你不想做。可惜,你身邊的人卻沒一個懂得你!” 阿瞳一口氣說了出來。如風一言不發,默默的抽煙。 “但是我明白!我了解!我看到你的第一眼就知道了,所以我接近你,也接近她。我和你的過去沒有一點關系,我慶幸自己沒有!如風,我可以陪伴著你,一直陪伴著你做你真正想做的事!帶我走,從這個破地方走出去!” 阿瞳從身后緊緊抱住如風,她用額頭抵著如風的背,柔聲說:“帶我走吧!你其實并不討厭我的,對不對?” 如風輕輕仰起頭,他望著窗外的灰色的天空,眼神迷朦。 阿瞳閉上眼睛,如風身上有股好聞的味道,讓人想象不出在如此污濁的地方會有這么清新的味道,她微笑著享受,這一刻對于她而言彌足珍貴。 “風哥!”就在這時,阿九闖了進來,他尷尬的且憤怒的望著他們。阿瞳重新坐回到沙發上,如風回過神,他緊張的問:“你怎么這么早就回來了?她呢?” “如畫姐被人帶走了……”阿九說。 如風一把抓住他,目露兇光,“你說什么!” 阿九慌張地說:“是如畫姐自己跟他走的!他們好像是同學!” 阿瞳饒有興趣地望著如風。 如風慢慢松開阿九,他抓起外套說:“走,去T大!” “等等!”阿瞳開口,“你監視她嗎?你知不知道這樣對自己的姐姐很可笑!你為了什么呢?你為的什么她知道嗎?她想知道嗎?” 如風冷冷地說:“你很聰明,但是也很自以為是,你不會明白我們之間的事。至于我真正想做什么,你根本不知道!” 如風走了出去,阿九神氣的跟在他身后,阿瞳的臉色漸漸暗淡。 帶走我的人是元燮。 “如畫,沒忘記我們的約定吧?”下課后元燮叫住我。 我的腦中仍在反復回想著阿瞳的那個我沒能回答上來的問題,沒有聽見元燮的話。 “如畫?你不舒服么?”元燮焦急地問,“要不要我送你去保健室?” 我茫然的看著元燮:“你是?” 元燮苦笑:“原來連我都忘了。” “元燮!”我終于回過神。 “謝謝你記得我!”元燮很開心的樣子,“今天活動!一起去吧!” “嗯……”我猶豫起來,當真正要踏出那一步時,我才發現自己對“另一個世界”根本一無所知。 元燮關切地問:“怎么?今天有事嗎?” 有事?沒錯!是有事!阿瞳像一只小蛀蟲,看透了我的心思不算,還跑到了我內心深處連自己都未敢輕易碰觸的地方盡情吞噬。她見到如風了吧?他們在一起做了什么?這些充斥著我的大腦,讓我倍感煎熬。“如果是有心事,那么我可不放你走!”我的表情被元燮盡收眼底,他好像明白我想些什么了。 “你看,人的心就這么大,”元燮比劃著,“如果不放些新的東西到里邊,那么舊的就會一直不走。” “好吧!”我被他說動了,的確,跟他說話的這一會工夫,我暫時忘了那個惱人的小姑娘。 我告訴阿九我有些事情不用他等了,阿九詫異的望望站在我身邊的元燮,匆忙趕回了東歌。 我走入戲劇社引起了一陣騷動。 “不愧是元燮!連夏如畫都能被你打動!” “說說看!用了什么花招?不會是出賣色相吧!” “這可以記入T大今秋大事記了!” “她真人更漂亮!” “奇怪!你說什么真人啊?” 社員們七嘴八舌,一片喧嘩。 “好了好了!”社長擺了擺手,他暗暗朝元燮豎起拇指,“夏同學,作為新社員介紹一下自己吧!” “介紹?”我很不習慣這種吵雜,不安的看著元燮。 “不用了吧,如畫她……”元燮替我解圍。 “切!什么時候竟然已經稱呼如畫啦?” “元燮,你都知道了,可我們還不知道啊!“ 大家依依不饒。既然她不想說,元燮也不答應,”社長出頭,“那么就提問吧!大家問,夏同學來回答,這樣好吧!” “夏同學是否單身?” “夏同學,何時何地為何被元燮說動?” “夏同學,是摩羯座嗎?摩羯座都特立獨行!” 我茫然不知所措,這輩子我還沒一下子面臨過這么多問題。 “夏同學!”一個男孩站了起來,“傳聞你是某位大佬的地下情婦,這是否是實情呢?” 空氣仿佛瞬間凝固,所有人都安靜了下來,好奇而緊張的望著我。 我臉色驟變,扭身跑了出去。 我都做了些什么呀!像小丑一樣站在他們面前!我的觸角狠狠的縮了回去。 “如畫!”元燮追了出來。 “你不用說了,”我冷冷得看著他說,“我不會回去了!” “我沒想勸你回去,他剛才的話太過分了!”元燮說,“但是,如畫你不能逃避生活,真正的生活!” 元燮的樣子很認真,他接著說:“我不知道是誰,出于什么目的把你保護起來,把你遠遠的放在一個安全的角落,不讓任何人接觸。但是我感謝這個人,因為他把一個最純粹的如畫放在了我面前,像一張白紙一樣……” 原來如風想把我變成一張白紙啊?讓沾滿塵埃的我變成一張白紙么?像什么都沒有發生,空空如也的一張白紙么? “但是如畫,人生不應該僅僅是一張白紙啊!”元燮的眼神變得很溫柔,“那上面要有顏色的!而且會是很美很美的顏色!和我一起好嗎?我會好好的保護你的!相信我!”.................................................................................
【code_小馬】喜歡的話,關注下哦