button点击切换背景图片的问题

我做了个UIButton的扩展,代码如下:

#import <UIKit/UIKit.h>

@interface CheckBoxButton : UIButton
@property (nonatomic,assign) BOOL isChecked;
@end

我通过下面代码来实现点击后切换图片,但是并不能达到效果

    if (button.isChecked) {
        self.collectionButton.imageView.image = [UIImage imageNamed:@"shouchang_do"];

    }else
    {
        self.collectionButton.imageView.image = [UIImage imageNamed:@"shouchang_undo"];

    }

这样设置后,点击按钮,图片并没有变换,解决办法:

    if (button.isChecked) {
        //self.collectionButton.imageView.image = [UIImage imageNamed:@"shouchang_do"];
        [self.collectionButton setImage:[UIImage imageNamed:@"shouchang_do"] forState:UIControlStateNormal];
    }else
    {
        //self.collectionButton.imageView.image = [UIImage imageNamed:@"shouchang_undo"];
        [self.collectionButton setImage:[UIImage imageNamed:@"shouchang_undo"] forState:UIControlStateNormal];

    }
这样就可以了,具体还没知道原因!!,有知道的请多多指点哈

### 回答1: 您好,要使用JavaScript实现点击切换背景图片,可以按照以下步骤进行: 1. 在HTML中,为需要切换背景图片的元素添加一个id属性,比如id="bg-img"。 2. 在JavaScript中,使用document.getElementById()方法获取该元素。 3. 定义一个数组,里面存放需要切换背景图片的URL地址。 4. 使用addEventListener()方法为元素添加一个点击事件,当用户点击该元素时触发。 5. 在点击事件中,使用Math.random()方法随机生成一个索引值,然后使用style.backgroundImage属性将元素的背景图片设置为数组中对应索引的图片URL地址。 以下是代码示例: HTML: ``` <div id="bg-img">点击切换背景图片</div> ``` JavaScript: ``` var bgImg = document.getElementById("bg-img"); var imgArray = ["url(图片1的URL地址)", "url(图片2的URL地址)", "url(图片3的URL地址)"]; bgImg.addEventListener("click", function() { var randomIndex = Math.floor(Math.random() * imgArray.length); bgImg.style.backgroundImage = imgArray[randomIndex]; }); ``` 请将代码中的"图片1的URL地址"、"图片2的URL地址"和"图片3的URL地址"替换为实际的图片URL地址。 ### 回答2: 要实现点击切换背景图片,可以使用JavaScript来编写代码。具体的实现步骤如下: 1. 首先,为HTML页面中的某个元素添加一个事件监听器,监听点击事件。 2. 在事件监听器中,获取要切换背景的元素,例如可以使用document.querySelector()方法获取到要切换背景的元素。 3. 创建一个数组,存储多个背景图片的URL地址。 4. 定义一个变量,用于记录当前显示的背景图片的索引。 5. 在点击事件中,切换背景图片的代码逻辑,例如通过修改元素的style属性来改变背景图片的URL,使用数组中的对应索引的URL地址。 6. 在切换背景图片后,更新当前显示的背景图片的索引,可以使用取余数的方式,实现循环切换背景图片。 7. 最后,执行以上步骤后,即可实现点击切换背景图片的功能。 示例代码如下: ```javascript // HTML: <button id="changeBtn">点击切换背景图片</button> <div id="bgElement"></div> // JavaScript: var bgElement = document.getElementById("bgElement"); var bgImages = ["image1.jpg", "image2.jpg", "image3.jpg"]; var currentIndex = 0; document.getElementById("changeBtn").addEventListener("click", function() { bgElement.style.backgroundImage = "url(" + bgImages[currentIndex] + ")"; currentIndex = (currentIndex + 1) % bgImages.length; }); ``` 以上是一种简单的实现方式,当点击按钮时,背景图片会按照数组中的顺序切换显示。可以根据实际需求进行修改和扩展。 ### 回答3: 使用js点击切换背景图片,可以通过以下步骤实现: 1. 首先,在HTML文件中创建一个包含需要切换背景图片的元素,比如一个div元素,将其设置为目标元素的背景。 ```html <div id="myDiv" style="background-image: url('image1.jpg');"> <!-- 内容 --> </div> ``` 2. 在JavaScript中,获取目标元素的引用,并将需要切换背景图片的URL存储在一个数组中。 ```javascript var myDiv = document.getElementById("myDiv"); var backgroundImageUrls = [ 'image1.jpg', 'image2.jpg', 'image3.jpg' ]; ``` 3. 创建一个变量来存储当前显示的图片的索引。 ```javascript var currentImageIndex = 0; ``` 4. 使用click事件监听器将点击事件绑定到目标元素上,并在每次点击切换背景图片。 ```javascript myDiv.addEventListener('click', function() { currentImageIndex++; // 如果当前图片索引超过数组长度,则将索引重置为0 if (currentImageIndex >= backgroundImageUrls.length) { currentImageIndex = 0; } // 更新目标元素的背景图片 myDiv.style.backgroundImage = 'url(' + backgroundImageUrls[currentImageIndex] + ')'; }); ``` 通过以上步骤,就可以实现点击切换背景图片的效果。每次点击时,会将当前显示的图片索引增加1,如果超过了数组长度,则将索引重置为0,然后更新目标元素的背景图片为数组中对应索引的URL。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值