iphone - 是否可以在 ScrollView 中制作单选按钮

标签 iphone objective-c ios uiscrollview

我想在 UIScrollView 上制作单选按钮。当我尝试在 UIView 上创建它时,它可以完美运行,但是当我尝试在 UIScrollView 上创建时,相同的代码将用作复选框。那么有没有办法在UIScrollView上制作单选按钮呢?

我正在将此代码用于 ScrollView

for (int i = 0; i < 5; i++) {
        UIButton *but = [UIButton buttonWithType:UIButtonTypeCustom];
        [but setImage:[UIImage imageNamed:@"emptycheckbox.png"] forState:UIControlStateNormal];
        [but setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateSelected];
        [but setFrame:CGRectMake(0, 0, 40, 33)];
        [but setCenter:CGPointMake( 50,  i*40+20 )];
        [but addTarget:self action:@selector(checkboxButton:) forControlEvents:UIControlEventTouchUpInside];
        [scrollView addSubview:but];

        scrollView.showsVerticalScrollIndicator = NO;
        [scrollView setContentSize:CGSizeMake(200,1000)];
    }


- (IBAction)checkboxButton:(UIButton *)button{

    for (UIButton *but in [self.view subviews]) {
        if ([but isKindOfClass:[UIButton class]] && ![but isEqual:button]) {
            [but setSelected:NO];
        }
    }
    if (!button.selected) {
        button.selected = !button.selected;
    }
}

我将这段代码用于 UIView

for (int i = 0; i < 5; i++) {
        UIButton *but = [UIButton buttonWithType:UIButtonTypeCustom];
        [but setImage:[UIImage imageNamed:@"emptycheckbox.png"] forState:UIControlStateNormal];
        [but setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateSelected];
        [but setFrame:CGRectMake(0, 0, 40, 33)];
        [but setCenter:CGPointMake( 50,  i*40+20 )];
        [but addTarget:self action:@selector(checkboxButton:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:but];


    }


- (IBAction)checkboxButton:(UIButton *)button{

    for (UIButton *but in [self.view subviews]) {
        if ([but isKindOfClass:[UIButton class]] && ![but isEqual:button]) {
            [but setSelected:NO];
        }
    }
    if (!button.selected) {
        button.selected = !button.selected;
    }
}

最佳答案

ScrollView 应该是:

for (UIButton *but in [scrollview subviews]) {...

NOT: for (UIButton *but in [self.view subviews]) {...

关于iphone - 是否可以在 ScrollView 中制作单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104249/

相关文章:

ios - 如何从 CKReference 对象中获取引用字符串

iphone - 我可以在 iPhone 上使用 Core Audio 效果吗?

iphone - 如何在iPhone应用程序中编写后台服务?

objective-c - 在没有绑定(bind)的情况下使用 NSCollectionView

objective-c - 如何在第一次打开时滚动到 UITableView 中的一行

ios - UICollectionview 未从 CoreData 完全加载图像获取随机空白单元格图像

ios - Xcode 卡在从设备 tvOS 复制缓存文件

iphone - 关于图像Alpha值的问题

iPhone Core 数据实体查找

iphone - 引用从中添加 subview 的类