2015-01-20 1 views
-1

Итак, я искал и пробовал разные коды, и я не могу добиться того, чего хочу. Надеюсь найти то, что я ищу здесь.Добавление границ к кнопке в числовой панели и добавление + знак на пустое место

Я пытаюсь сделать пользовательскую цифровую панель. Это результат я хочу:

enter image description here

Но это так близко, я получаю.

enter image description here

Первая проблема заключается в том, что я не могу получить и применить кнопку, чтобы иметь границы отменить. Как я могу это исправить?

Вторая проблема заключается в том, что я хочу добавить кнопку + * # на моей цифровой клавиатуре. как я могу это сделать?

Это код им работать:

self.numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)]; 
self.numberToolbar.barStyle = UIBarStyleBlackTranslucent; 
self.numberToolbar.items = [NSArray arrayWithObjects: 
          [[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain target:self action:@selector(cancelNumberPad)], 
          [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], 
          [[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)], 
          nil]; 
[self.numberToolbar sizeToFit]; 

self.driverNumber.inputAccessoryView = self.numberToolbar; 
+0

Как насчет того, чтобы кнопка с названием/изображением '' + * # "'? – matt

+0

Первая фотография - это старый iOS 6 и прежний внешний вид. Нижним изображением является новый iOS 7 и более поздний вид. У кнопок больше нет границ. – rmaddy

+2

Используйте клавиатуру телефона вместо клавиатуры с цифровым клавиатурой. – rmaddy

ответ

1

Первая проблема заключается в том, что я не могу получить и применить кнопку, чтобы иметь границы отменить. Как я могу это исправить?

Как вам сказали, кнопки не имеют границ. Так что «исправлять» нечего. Если вы настаиваете на границах, вам нужно будет нарисовать фоновое изображение кнопки самостоятельно, чтобы у нее было что-то похожее на границу. Вот какой код, который я использую в одном из моих приложений:

b.setBackgroundImage(imageOfSize(CGSizeMake(15,15)) { 
    let grad = CAGradientLayer() 
    grad.frame = CGRectMake(0,0,15,15) 
    grad.colors = [ 
     UIColor(red: 1, green: 1, blue: 0, alpha: 0.8).CGColor, 
     UIColor(red: 0.7, green: 0.7, blue: 0.3, alpha: 0.8).CGColor] 
    let p = UIBezierPath(
     roundedRect: CGRectMake(0,0,15,15), cornerRadius: 8) 
    p.addClip() 
    grad.renderInContext(UIGraphicsGetCurrentContext()) 
    UIColor.blackColor().setStroke() 
    p.lineWidth = 2 
    p.stroke() 
}.resizableImageWithCapInsets(
    UIEdgeInsetsMake(7,7,7,7), resizingMode: .Stretch), 
    forState: .Normal) 
+0

И если у вас есть два несвязанных вопроса (вы делаете), задайте два отдельных вопроса. – matt

+0

Thnx, будет иметь в виду в следующий раз –

0

В iOS 7 по умолчанию UIButton с прозрачным фоном и без границ. В iOS7 +, если вы хотите, чтобы углы и фоны, такие как iOS 6, использовали пользовательскую кнопку.

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

Теперь вы можете установить радиус фона, границы и угла, если хотите.

button.layer.cornerRadius = 2.0f; 
button.layer.borderWidth = 1.0f; 
button.layer.borderColor = [UIColor whiteColor].CGColor; 
button.backgroundColor = [UIColor blueColor]; 
button.clipsToBounds = YES;