Re: [問題] 如何更改button按下之後的圖片

看板MacDev作者 (Traveler)時間12年前 (2012/04/15 21:45), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《spy0923 (spy0923)》之銘言: : 各位前輩好: : 小弟想實現button onclick時(1)未按下時背景是圖片一(statenormal),(2)按下未放開時是圖片二(statehighlighted),(3)按下放開之後是圖片三(非原始未按下狀態) : 目前知道的是(1)(2)的作法,附上code : (1)未按下時背景是圖片一 [myButton1 setBackgroundImage:[UIImage imageNamed : @ : "pic1.png"] forState:UIControlStateNormal]; : (2)按下未放開時是圖片二 [myButton1 setBackgroundImage:[UIImage imageNamed : @ : "pic2.png"] forState:UIControlStateHighlighted]; : button完整code: : 定義button : UIButton *myButton1 = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; : [myButton1 setBackgroundImage:[UIImage imageNamed : @"pic1.png"] forState: : UIControlStateNormal]; : [myButton1 setBackgroundImage:[UIImage imageNamed : @"pic2.png"] forState: : UIControlStateHighlighted]; : myButton1.frame = CGRectMake(0, 396, 64, 64); : //[myButton1 addTarget:self action : @selector(onClick1: ) forControlEvents: : UIControlEventTouchUpInside]; : [self.view addSubview:myButton1]; 上面這些code 完全不需要寫 nib拉一拉就好了 : 定義click事件: : -(void) onClick1: (id)sender{ : [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString : @ : "http://www.yahoo.com.tw"]]] : [self.view addSubview:myButton1]; 再add一次目的為何? 看不懂= = 在 onClick1裡面直接這樣寫就好了 dispatch_async(dispatch_get_main_queue(), ^{ [myButton1 setBackgroundImage:[UIImage imageNamed : @"pic3.png"] forState: UIControlStateNormal]; }); onClick1後 畫面之所以沒有照你所設定那樣更新 是因為不是跑在main Thread上 或也可以用[self performSelectorOnMainThread....] 不過基本上現在我都用dispatch (GCD機制)比較好用:P 建議你去看一下GCD章節 dispatch 一定要會用 葡萄柚書 Beginning iOS5 Development Exploring the iOS SDK : 如今欲在click之後將mybutton1的背景改成pic3.png 不知道該怎麼做? : 還望各位不另賜教 謝謝!!(已試過forstateselected也是無效@@) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.188.103 ※ 編輯: reon 來自: 1.162.188.103 (04/15 21:46)

04/23 23:25, , 1F
我找不到NIB哪裡可以拉這些耶@@ 可以說明一下嗎 感謝
04/23 23:25, 1F

04/24 12:56, , 2F
看到了....XD
04/24 12:56, 2F
文章代碼(AID): #1FYj4FXj (MacDev)
文章代碼(AID): #1FYj4FXj (MacDev)