使用swift在背景图像上的uibutton文本

Posted

技术标签:

【中文标题】使用swift在背景图像上的uibutton文本【英文标题】:uibutton text on background image using swift 【发布时间】:2014-11-30 07:30:28 【问题描述】:

我是 ios swift 新手,过去几天我一直在尝试解决这个问题。我正在尝试使用从服务器下载的背景图像创建一个 UIButton,并在背景图像顶部的按钮本身上添加一个文本。

for button in data 
            let btn = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
            btn.frame = CGRectMake(x, y, 125, 125)
            btn.backgroundColor = UIColor.greenColor()
            btn.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
            btn.setTitle(button["button_text"] as NSString, forState:UIControlState.Normal)
            btn.addTarget(self, action: "buttonTapped:", forControlEvents: UIControlEvents.TouchUpInside)
            btn.titleLabel?.font = UIFont(name: "Arial", size: 15)
            btn.titleLabel?.textAlignment = .Center
            btn.titleLabel?.numberOfLines = 5
            btn.layer.borderColor = UIColor.grayColor().CGColor
            btn.layer.borderWidth = 1

            var item_image_url:NSString = button["button_image"] as NSString
            var imgURL: NSURL = NSURL(string: item_image_url)!
            let request: NSURLRequest = NSURLRequest(URL: imgURL)
            NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: (response: NSURLResponse!,data: NSData!,error: NSError!) -> Void in
                var image = UIImage(data: data)
                btn.setImage(image, forState: UIControlState.Normal)
            )

            self.view.addSubview(btn)
        

请帮忙!提前谢谢..

吉隆坡

【问题讨论】:

到目前为止你做了什么?请发布您的代码并说明问题所在。 我尝试动态创建按钮,但是,只有图像出现...我已包含上面的代码...谢谢.. 【参考方案1】:

我有同样的问题,并找到了解决方案。

使用BackgroundImage 而不是Image,文本将保持可见。

所以改变:

btn.setImage(image, forState: UIControlState.Normal)

进入:

btn.setBackgroundImage(image, forState: UIControlState.Normal)

希望这也能解决您的问题。

【讨论】:

您好,如果我的回答对您有所帮助,请您点击打勾!我需要积累一些积分....提前致谢。【参考方案2】:
    let imageN = UIImage(named: "imageName.jpg") as UIImage?
    let button = UIButton()
    button.frame = CGRectMake(10, 10, 25, 35)
    button .setBackgroundImage(imageN, forState: UIControlState.Normal)
    button.setTitle("Text", forState: UIControlState.Normal)
    button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
    self.view.addSubview(button)

【讨论】:

Ikbal,请为您的回答添加一些解释。

以上是关于使用swift在背景图像上的uibutton文本的主要内容,如果未能解决你的问题,请参考以下文章

swift中白色背景图像上的白色文本

如何在 Swift 中创建具有自定义形状的 UIButton?

UIButton 上的图像

Swift:使用 CGRect 设置 UIButton 图像

Swift:如何在单击提交按钮时更改 UIButton 图像

如何使用图像和文本制作自定义 UIButton?