starwar2012 2012-12-18 02:56 采纳率: 0%
浏览 1949

通过编程创建多个复选框

UIViewController中有一个UITextView,要对UITextView插入多个复选框。

怎么创建多个复选框,并且对这些复选框动态的创建方法?

目前代码如下:

-(void)Check
{
    CGPoint origin = note.frame.origin;
    NSString* head = [note.text substringToIndex:note.selectedRange.location];
    CGSize initialSize = [head sizeWithFont:note.font constrainedToSize:note.contentSize];
    NSUInteger startOfLine = [head length];

    NSString* tail = [head substringFromIndex:startOfLine];
    CGSize lineSize = [tail sizeWithFont:note.font forWidth:note.contentSize.width lineBreakMode:UILineBreakModeWordWrap];
    CGPoint cursor = origin;
    cursor.x += lineSize.width+15;
    cursor.y += initialSize.height - lineSize.height-130;

checkbox = [[UIButton alloc] initWithFrame:CGRectMake(cursor.x,cursor.y,15,15)];
    [checkbox setBackgroundImage:[UIImage imageNamed:@"unchk.png"]forState:UIControlStateNormal];
    [checkbox setBackgroundImage:[UIImage imageNamed:@"chk.png"]forState:UIControlStateSelected];
    [checkbox setBackgroundImage:[UIImage imageNamed:@"chk.png"]forState:UIControlStateHighlighted];
    checkbox.adjustsImageWhenHighlighted=YES;
    [checkbox addTarget:self action:@selector(ChkUnChk) forControlEvents:UIControlEventTouchUpInside];
    [note addSubview:checkbox];
}

-(void)ChkUnChk
{
    if(checkUnCheck==NO)
    {
        [checkbox setBackgroundImage:[UIImage imageNamed:@"chk.png"]forState:UIControlStateNormal];
        checkUnCheck=YES;
    }
    else if(checkUnCheck==YES)
    {
        [checkbox setBackgroundImage:[UIImage imageNamed:@"unchk.png"]forState:UIControlStateNormal];
        checkUnCheck=NO;
    }
}

-(void)checkboxSelected:(id)sender
{
    checkBoxSelected = !checkBoxSelected;
    [checkbox setSelected:checkBoxSelected];
}

其中note --> UITextView,checkbox --> UIButton

  • 写回答

1条回答

  • gaoXxxing 2012-12-18 05:08
    关注

    NSMutableArray

    .h文件

    NSMutableArray *selectedBtnarr;
    

    .m文件

     - (void)viewDidLoad
       {
             selectedBtnarr=[NSMutableArray alloc]init];
       }
    

    然后设置 UIButton的属性. 每个Button都有不同标签.

    -(void)ChkUnChk:(id)sender
    {
    
        UIButton *btn=(UIButton *)sender;
        NSString *Str=[NSString stringWithFormat:@"%d",btn.tag];
        BOOL flag=   [selectedBtnarr containsObject:Str];
    
        if (flag==YES)
        {
            [btn setBackgroundImage:[UIImage imageNamed:@"unchk.png"]    forState:UIControlStateNormal];
            [selectedBtnarr removeObject:Str];
        }
        else
        {
            [selectedBtnarr addObject:Str];
            [btn setBackgroundImage:[UIImage imageNamed:@"chk.png"] forState:UIControlStateNormal];
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码