iOS開發入門例項
#import "HMCustomSwitch.h" @implementation HMCustomSwitch @synthesize on; @synthesize tintColor, clippingView, leftLabel, rightLabel; +(HMCustomSwitch *)switchWithLeftText:(NSString *)leftText andRight:(NSString *)rightText { HMCustomSwitch *switchView = [[HMCustomSwitch alloc] initWithFrame:CGRectZero]; switchView.leftLabel.text = leftText; switchView.rightLabel.text = rightText; return [switchView autorelease]; } -(id)initWithFrame:(CGRect)rect { if ((self=[super initWithFrame:CGRectMake(rect.origin.x,rect.origin.y,95,27)])) { // self.clipsToBounds = YES; [self awakeFromNib]; // do all setup in awakeFromNib so that control can be created manually or in a nib file } return self; } -(void)awakeFromNib { [super awakeFromNib]; self.backgroundColor = [UIColor clearColor]; [self setThumbImage:[UIImage imageNamed:@"switchThumb.png"] forState:UIControlStateNormal]; [self setMinimumTrackImage:[UIImage imageNamed:@"switchBlueBg.png"] forState:UIControlStateNormal]; [self setMaximumTrackImage:[UIImage imageNamed:@"switchOffPlain.png"] forState:UIControlStateNormal]; self.minimumValue = 0; self.maximumValue = 1; self.continuous = NO; self.on = NO; self.value = 0.0; self.clippingView = [[UIView alloc] initWithFrame:CGRectMake(4,2,87,23)]; self.clippingView.clipsToBounds = YES; self.clippingView.userInteractionEnabled = NO; self.clippingView.backgroundColor = [UIColor clearColor]; [self addSubview:self.clippingView]; [self.clippingView release]; NSString *leftLabelText = NSLocalizedString(@"ON","Custom UISwitch ON label. If localized to empty string then I/O will be used"); if ([leftLabelText length] == 0) { leftLabelText = @"l"; // use helvetica lowercase L to be a 1. } self.leftLabel = [[UILabel alloc] init]; self.leftLabel.frame = CGRectMake(0, 0, 48, 23); self.leftLabel.text = leftLabelText; self.leftLabel.textAlignment = NSTextAlignmentCenter; self.leftLabel.font = [UIFont boldSystemFontOfSize:17]; self.leftLabel.textColor = [UIColor whiteColor]; self.leftLabel.backgroundColor = [UIColor clearColor]; // self.leftLabel.shadowColor = [UIColor redColor]; // self.leftLabel.shadowOffset = CGSizeMake(0,0); [self.clippingView addSubview:self.leftLabel]; [self.leftLabel release]; NSString *rightLabelText = NSLocalizedString(@"OFF","Custom UISwitch OFF label. If localized to empty string then I/O will be used"); if ([rightLabelText length] == 0) { rightLabelText = @"O"; // use helvetica uppercase o to be a 0. } self.rightLabel = [[UILabel alloc] init]; self.rightLabel.frame = CGRectMake(95, 0, 48, 23); self.rightLabel.text = rightLabelText; self.rightLabel.textAlignment = NSTextAlignmentCenter; self.rightLabel.font = [UIFont boldSystemFontOfSize:17]; self.rightLabel.textColor = [UIColor grayColor]; self.rightLabel.backgroundColor = [UIColor clearColor]; // self.rightLabel.shadowColor = [UIColor redColor]; // self.rightLabel.shadowOffset = CGSizeMake(0,0); [self.clippingView addSubview:self.rightLabel]; [self.rightLabel release]; } -(void)layoutSubviews { [super layoutSubviews]; // NSLog(@"leftLabel=%@",NSStringFromCGRect(self.leftLabel.frame)); // move the labels to the front [self.clippingView removeFromSuperview]; [self addSubview:self.clippingView]; CGFloat thumbWidth = self.currentThumbImage.size.width; CGFloat switchWidth = self.bounds.size.width; CGFloat labelWidth = switchWidth - thumbWidth; CGFloat inset = self.clippingView.frame.origin.x; // NSInteger xPos = self.value * (self.bounds.size.width - thumbWidth) - (self.leftLabel.frame.size.width - thumbWidth/2); NSInteger xPos = self.value * labelWidth - labelWidth - inset; self.leftLabel.frame = CGRectMake(xPos, 0, labelWidth, 23); // xPos = self.value * (self.bounds.size.width - thumbWidth) + (self.rightLabel.frame.size.width - thumbWidth/2); xPos = switchWidth + (self.value * labelWidth - labelWidth) - inset; self.rightLabel.frame = CGRectMake(xPos, 0, labelWidth, 23); // NSLog(@"value=%f xPos=%i",self.value,xPos); // NSLog(@"thumbWidth=%f self.bounds.size.width=%f",thumbWidth,self.bounds.size.width); } - (UIImage *)image:(UIImage*)image tintedWithColor:(UIColor *)tint { if (tint != nil) { UIGraphicsBeginImageContext(image.size); //draw mask so the alpha is respected CGContextRef currentContext = UIGraphicsGetCurrentContext(); CGImageRef maskImage = [image CGImage]; CGContextClipToMask(currentContext, CGRectMake(0, 0, image.size.width, image.size.height), maskImage); CGContextDrawImage(currentContext, CGRectMake(0,0, image.size.width, image.size.height), image.CGImage); [image drawAtPoint:CGPointMake(0,0)]; [tint setFill]; UIRectFillUsingBlendMode(CGRectMake(0,0,image.size.width,image.size.height),kCGBlendModeColor); UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } else { return image; } } -(void)setTintColor:(UIColor*)color { if (color != tintColor) { [tintColor release]; tintColor = [color retain]; [self setMinimumTrackImage:[self image:[UIImage imageNamed:@"switchBlueBg.png"] tintedWithColor:tintColor] forState:UIControlStateNormal]; } } - (void)setOn:(BOOL)turnOn animated:(BOOL)animated; { on = turnOn; if (animated) { [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.2]; } if (on) { self.value = 1.0; } else { self.value = 0.0; } if (animated) { [UIView commitAnimations]; } } - (void)setOn:(BOOL)turnOn { [self setOn:turnOn animated:NO]; } - (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { NSLog(@"preendTrackingWithtouch"); [super endTrackingWithTouch:touch withEvent:event]; NSLog(@"postendTrackingWithtouch"); m_touchedSelf = YES; [self setOn:on animated:YES]; } - (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { [super touchesBegan:touches withEvent:event]; NSLog(@"touchesBegan"); m_touchedSelf = NO; on = !on; } - (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event { [super touchesEnded:touches withEvent:event]; NSLog(@"touchesEnded"); if (!m_touchedSelf) { [self setOn:on animated:YES]; [self sendActionsForControlEvents:UIControlEventValueChanged]; } } -(void)dealloc { [tintColor release]; [clippingView release]; [rightLabel release]; [leftLabel release]; [super dealloc]; } @end
相關推薦
iOS開發入門例項
#import "HMCustomSwitch.h" @implementation HMCustomSwitch @synthesize on; @synthesize tintColor, clippingView, leftLabel, rightLabel; +(HMCustomSwitch
opendaylight-Boron-SR3開發入門例項
開發環境搭建: 開發環境配置如下: 1) 64位ubuntu16.04系統,4G以上記憶體, 16G以上硬碟剩餘空間 2) JDK8, maven-3.5.0(原始碼安裝) 3) 環境變數設定(gedit /etc/profile和source /etc/profile) e
IOS開發入門之一——Swift語言基礎
需要iOS視訊資料可以加我微信: 1914532832 驗證資訊請註明:IOS開發 很多新人對IOS開發很迷茫,不知道從何下手?看完本系列,你將會覺得IOS入門其實很簡單。要學習IOS開發,當然是先學習Swift語言,特別是小白,你連基本的程式碼都
5個月iOS開發入門總結(C++轉行iOS)
前言:一個人寫的ios轉行總結,思路很清晰,值得學習 原文網址:http://www.cocoachina.com/bbs/read.php?tid-332587.html 囉嗦(請跳過)8月5號左右突然做出了來北京工作的決定,給北京同學瞭解情況時正好同學公司缺人,7號來
第一章 ios開發入門
1.1 iOS開發必要條件 1.1.1 iOS開發的軟硬體環境 硬體開發環境:Mac電腦,ios裝置(可選 ) 軟體開發環境:OS X,Xcode 1.1.2 iOS平臺開發語言 Objective c 1.1.3 MVC模式簡式<框架模式,設計模式>
Android開發入門例項:四則混合運算計算器
開發Android應用主要使用的語言是Java,佈局檔案和介面則一般用XML來描述。整個應用的GUI開發與Java SWT、QT等其實區別不是特別大。如果有任何一種GUI程式開發經驗,學習Android應用開發就是一件非常容易的事。這篇文章裡我們來開發一個支
IOS開發入門之六——storyboard的使用(中)
需要iOS開發視訊資料可以加我微信: 1914532832 驗證資訊請註明:IOS開發 上節我們瞭解了使用storyboard如何在單個頁面上放置檢視,並且設定這些檢視的屬性、位置約束等使之達到我們設計的效果。需要了解的人請點選"IOS開發入門之五——
移動開發入門必看——iOS 開發入門書籍推薦
整理了一些iOS 開發入門級別的書籍推薦給大家,每本都是很經典的著作,對於初學者來說是很值得一看的學習資料,希望能幫到大家! 本書將帶你走上建立iOS應用程式的大道。 我們的目標是讓你通過初步學習,理解iOS應用程式的執行和構建方式。在學習過程中,你將建
0基礎學IOS開發怎樣入門
主機 咨詢 開源 閱讀 關註 論壇 優勢 難學 c語言 1 、信念。 很大程度上,學iOS就是一個信念的事情。iOS開發本身不難學,不需要你有很高的智力,只需要你能夠堅持下去。只要你心中有信念,堅持下去就會有收獲。不管你是學哪一種編程語言,不用懷疑你能不能學會,只要你肯下工
ios開發之Swift新手入門
間距 cati rmi article ride edit ner .com 設置 1、關於swift和調試,swift在ios7.0才支持,ios8.3系統的真機必需要xcode6.3才幹調試。安裝xcode6.3需要os x 10.10以上 2、應用程序由Main.
iOS開發-OpenGL ES入門教程1
貼圖 iba 細節 con osi tutorial name rip tex http://www.jianshu.com/p/750fde1d8b6a 這裏是一篇新手教程,環境是Xcode7+OpenGL ES 2.0,目標寫一個OpenGL ES的hello wor
Android開發入門經典例項
開發例項概述 今天帶大家做一個簡單的Android App,這個App會顯示創新工程實踐老師們的照片和資訊,不妨先看一看效果: 雖然這個App非常簡單,但是涉及到了Android開發中的一些關鍵知識,比如: 配置開發環境 App中一個螢幕的抽象:Activity
EJB 開發環境與入門例項
文章目錄 1.環境準備 2.WildFly 介紹 下載 配置與啟動 3. EJB 服務建立 4.客戶端呼叫
iOS SDK開發入門姿勢詳解
1、建立workspace 兩張圖搞定的事情,就不寫了。 ① 開啟Xcode,左上角 File--> New --> Workspace. ② 建立一個資料夾,用來存放我們生成的檔案,成功之後如下。 2、建立SDK 也是,我們幾張圖來搞定 ① Xcode左上角 File -&
iOS開發-植入廣告 iAd Admob例項
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興! 應用中植入廣告是一種很好的盈利手段。下面介紹主流的兩種方法。iAd, Admob一。iAd1.需要加入iAd.framework2. .h檔案加入如下程式碼
IOS 初級開發入門教程(二)第一個HelloWorld工程及StoryBoard使用
前言 在IOS開發之路的博文第一章:(IOS開發入門介紹http://blog.csdn.net/csdn_aiyang)我大致系統介紹了有關IOS的一些基礎認識,如果不完全都記住沒關係,以後我們開發之路還很長,慢慢的自然而然就明白是怎麼回事了。這一篇我將手把手教大家完成第
例項-0基礎微信小程式開發入門1.2-【第一個小程式】
【開啟征程】開啟微信web開發者工具,點選小程式專案:點選右下角的“+”號,將建立快速模板前面的勾去掉然後選擇體驗小程式,目錄隨意,點選確定,即可建立一個全空的小程式專案啦。【建立最基本的目錄結構和檔案】在開始建立之前,我們有必要了解一下最基本的東西:JSON 是一種資料格
Sagit.Framework For IOS 開發框架入門教程5:訊息彈窗STMsgBox
前言: 昨天剛寫了一篇IT連創業的文章:IT連創業系列:產品設計之答題模組,(歡迎大夥關注!) 感覺好久沒寫IOS的文章了,今天趁機,來補一篇,Sagit的教程。 今天主要是分享訊息彈窗功能,即STMsgBox的用法: STMsgBox為彈窗相關的功能的原始碼。 1、對外API功能呼叫說明:
Sagit.Framework For IOS 開發框架入門教程6:網路請求STHttp
前言: IOS的文章,今天,再來補一篇,Sagit的教程; 雖然感覺IOS的文章沒什麼觀眾,還是努力寫吧,-_-〜 今天主要是分享網路請求,即STHttp的用法: STHttp為處理網路API請求的功能的原始碼。 1、對外API功能呼叫說明: 對於網路請求,Sagit目前是對AFNetwo
iOS開發60分鐘入門
本文面向已有其它語言(如Java,C,PHP,Javascript)程式設計經驗的iOS開發初學者,初衷在於讓我的同事一小時內瞭解如何開始開發iOS App,學習目標包括: 能使用Xcode IDE、模擬器 能修改、除錯已有iOS App 能在已有應用內建立新模組 能建立新應