我正在做一個遊戲,並且由於某種原因,邊框厚度根據按鈕的顏色而改變。直到我在應用程序上放置背景圖像時才發生這個問題,所以我不確定是什麼原因造成的。我拿了幾張截圖來展示我的意思。出於某種原因,當邊界按鈕爲藍色時,邊框厚度變爲2px而不是1px。爲什麼邊框厚度會隨着按鈕顏色(藍色獲得2px邊框)而改變?
另外,控制按鈕邊框也有一些問題。通過控制按鈕,我指的是頂部的6個按鈕,順序爲紅色,藍色,棕色,綠色,紫色和黃色。
下面是截圖:
我通過把一個按鈕,其中開始於X-1的背景下,Y-1創建的邊界,並具有寬度+ 2和高度的寬度高度+2。下面是一段代碼給你一個想法:
UIButton *borderButton = [UIButton buttonWithType:UIButtonTypeCustom];
borderButton.frame = CGRectMake((controlX-1), (controlY-1), 42, 32);
borderButton.backgroundColor = [UIColor blackColor];
[self.view addSubview:borderButton];
UIButton *controlButton = [UIButton buttonWithType:UIButtonTypeCustom];
[controlButton addTarget:self
action:@selector(doMove:)
forControlEvents:UIControlEventTouchDown];
controlButton.frame = CGRectMake(controlX, controlY, 40, 30);
controlButton.tag = 500 + i;
tmpColor = [self.colors objectAtIndex:i];
controlButton.backgroundColor = tmpColor;
[self.view addSubview:controlButton];
此代碼是從一個循環,其中controlX和controlY給出了其中的控制按鈕應該開始x/y值取。
如果有人知道如何解決這個問題,我將不勝感激。如果我以錯誤的方式去解決邊界問題,並且實現相同外觀的方式更簡單,問題更少,那麼我也願意這樣做,因爲在我的最後不會有太多的代碼要改變。在此先感謝任何能夠幫助我解決這個惱人的UI故障的人。
這樣的框架問題仍然存在,即邊框在按鈕上向外看。這是我實現你的代碼後的屏幕截圖:http://mdl.fm/f/b3.png你看藍色的那個看起來很奇怪嗎?紅色的也是,但藍色是最引人注目的。 iOS中的藍色按鈕邊框有固有的問題嗎?感謝您的建議,但您的回覆爲+1,因爲處理邊界的方式比我所做的要好得多。 – SISYN
啊,我明白你的意思了。你可以玩borderWidth/cornerRadius(增加borderWidth?)。但最好的選擇是使用自定義背景圖像(或使用[可伸縮圖像](http://developer.apple.com/library/ios/documentation/uikit/reference/UIImage_Class/Reference/Reference.html#//apple_ref/) occ/instm/UIImage/resizableImageWithCapInsets :)) –
感謝您的幫助,我隨身攜帶它,我發現最好的解決方案只是改變按鈕的顏色。我讓它們變得更輕一點,現在的問題幾乎沒有那麼明顯。 – SISYN