UITableView Cell中的按钮操作

时间:2012-04-27 09:47:08

标签: iphone ios

在我的应用程序中,有一个UITableView。在表格单元格中放置两个标签和一个按钮。按钮高度等于(label1 + label2)高度。这些是显示内容。和按钮是为了行动。这里我的问题是无法在所有部分执行按钮操作。点击时只有部分工作正常。

以下是用于放置标签和按钮的代码

artistButton = [[UIButton alloc] initWithFrame:CGRectMake(11.0, 6.0, 170.0, 50.0)];
artistButton.backgroundColor = [UIColor redColor];
[self.contentView bringSubviewToFront:artistButton];
[self.contentView addSubview:artistButton];

artistLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(11.0, 6.0, 170.0, 27.0)];
artistLabel1.textAlignment = UITextAlignmentLeft;
artistLabel1.textColor = [UIColor colorWithRed:0.14 green:0.29 blue:0.42 alpha:1]; 
artistLabel1.font =  [UIFont boldSystemFontOfSize:15.0];
artistLabel1.backgroundColor = [UIColor blueColor];
[self.contentView addSubview:artistLabel1];

artistLabel2 = [[UILabel alloc] initWithFrame:CGRectMake(11.0,20.0, 170.0, 27.0)];
artistLabel2.textAlignment = UITextAlignmentLeft;
artistLabel2.textColor = [UIColor grayColor];
artistLabel2.font =  [UIFont boldSystemFontOfSize:12.0];
artistLabel2.backgroundColor = [UIColor grayColor];
[self.contentView addSubview:artistLabel2];

任何人都可以提供帮助或建议。 提前谢谢。

5 个答案:

答案 0 :(得分:2)

我找到了问题的答案。 由于按钮和标签的大小,它只是不起作用。 现在调整按钮的宽度和长度,并标记其工作正常。 谢谢大家。

答案 1 :(得分:0)

将此操作添加到此按钮

artistButton = [[UIButton alloc] initWithFrame:CGRectMake(11.0, 6.0, 170.0, 50.0)];
artistButton.backgroundColor = [UIColor redColor];

[artistButton addTarget:self 
           action:@selector(ArtistAction)
 forControlEvents:UIControlEventTouchUpInSide];

[self.contentView bringSubviewToFront:artistButton];
[self.contentView addSubview:artistButton];


-(void)ArtistAction
{
  NSLog("Test Artist Action");
}

答案 2 :(得分:0)

在UIButton声明之前添加一行..

artistButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

之后,您可以初始化您的UIButton代码。

答案 3 :(得分:0)

我想你确实意识到你设置的帧是重叠的。 您可以调用[self.contentView bringSubviewToFront:artistButton];,但之后将按钮添加为子视图,这样就无效了。 您也可以在添加按钮后添加其他子视图,这些子视图将放在您的按钮上方。

因此,首先添加两个标签,然后按钮,您应该能够正确地单击按钮,但标签将位于按钮下方,并且不确定它们中有多少可见。检查您要为要添加的对象设置的帧。

答案 4 :(得分:0)

只需使用您的手机tableView:didSelectRowAtIndex:方法。