-1

そのため、さまざまなコードを調べて試してみましたが、本当に欲しいものを達成できません。探しているものがここで見つかることを願っています。

カスタムナンバーパッドを作ろうとしています。これは私が望む結果です:

ここに画像の説明を入力

しかし、これは私が得るのと同じくらい近いです。

ここに画像の説明を入力

最初の問題は、適用ボタンとキャンセル ボタンに境界線を表示できないことです。どうすれば修正できますか?

2 番目の問題は、数字パッドにも +*# ボタンを追加したいということです。どうすればそれができますか?

これは私が働いているコードです:

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;
4

2 に答える 2

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)
于 2015-01-20T19:13:17.773 に答える