我爲UITextField製作了一個自定義鍵盤,由18個UIButtons組成。這是一個UIView,它被設置爲文本字段的inputView。iOS自定義鍵盤可伸縮圖像停止拉伸
按鈕被使用的代碼
UIImage* buttonImage =[[UIImage imageNamed:@"keyboard-button-background.png"] stretchableImageWithLeftCapWidth:1.0 topCapHeight:79.0];
UIImage* buttonPressedImage =[[UIImage imageNamed:@"keyboard-button-pressed-background.png"] stretchableImageWithLeftCapWidth:1.0 topCapHeight:79.0];
UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:title forState:UIControlStateNormal];
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setBackgroundImage:buttonPressedImage forState:UIControlStateHighlighted];
button.frame = CGRectMake(xPosition, yPosition, buttonWidth, buttonHeight);
一旦按鈕被按下時,按鈕,然後設置爲enabled = NO
在了UIView的initWithFrame:
方法創建的。至少有一個按鈕處於啓用狀態時,背景可以完美展開。如果所有按鈕都被禁用,並且UITextfield然後UITextField再次成爲First Responder,則出現按鈕,但背景圖像不再可以伸展(至少不在垂直方向上,水平看起來很好)。
我不確定從哪裏開始尋找解決方案。我的猜測是自定義鍵盤繪製子視圖的方式,但我不確定。
難道這可以通過設置背景圖像在layoutSubviews
或drawRect:
或類似的東西?橫向拉伸工作正常的事實使我懷疑UIButton的框架是否不正確,因爲它正在被繪製。
編輯 的最左邊細胞只是標籤,與數字UITextfields右側的細胞,具有自定義鍵盤
鍵盤應該是什麼樣子:
如何鍵盤實際上看起來在單元格3上一次退出第一響應者,然後給予第一響應者(所有鍵被禁用),然後給出4個第一響應者:
你可以加入一些截圖嗎?想象一下這應該是什麼樣子有點難。 – jrturton
是啊掛在2分鐘 – Josh
你在哪裏設置你的rects? – Luke