简体   繁体   中英

How can I add button icons to custom keyboard iOS 8?

I am creating custom keyboard for ios 8. Creating keyboard buttons like this

    UIButton *aBtn = [ UIButton buttonWithType:UIButtonTypeCustom ];

    [aBtn setFrame:CGRectMake(x, 30, btnWidth, btnHeight)];

    [aBtn setImage:[UIImage imageNamed:@"A"] forState:UIControlStateNormal];

    [aBtn setTitle:@"A" forState:UIControlStateNormal];
    [aBtn setTitleColor:[ UIColor blackColor] forState:UIControlStateNormal];
    [aBtn setTitleColor:[ UIColor whiteColor] forState:UIControlStateHighlighted];
    [aBtn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:aBtn];

My problem is that the image is not set to button. How can I solve this?

Do I need any special steps to be able to add images to Xcode for custom keyboards?

You probably didn't add the image to your keyboard target.

Check your keyboard target > Build Phases > Copy bundle resources to make sure that the image is there. Drag it there if it isn't.

Note that I am talking about the keyboard target, not the host app. That could be the confusion here.

You can add image on custom keyboard like below steps.

1. Add images in your xcode project

2. Add images in keyboard bundle resources. check below image

在此处输入图片说明

3. Set image with background on button. check below image

在此处输入图片说明

Add a new "Assets Catalog" in your custom keyboard folder ( Where "KeyboardViewController.swift" file is located.

在此处输入图片说明

Then add your image in "Assets Catalog" folder and use the following code.

let button = UIButton(type: UIButton.ButtonType.system) as UIButton     
button.frame = CGRect(x: 0, y: 0, width: 40, height: 40)
if let image  = UIImage(named: "image_name") { // no need to use ".png format"
    button.setBackgroundImage(image, for: .normal)
}
button.backgroundColor = .red // to show button position
view.addSubview(button)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM