0

在我的应用程序中,有一个 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];

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

4

5 回答 5

2

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

于 2012-04-30T10:15:26.113 回答
0

只需用于您的细胞tableView:didSelectRowAtIndex:方法。

于 2012-04-28T10:12:35.157 回答
0

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

artistButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

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

于 2012-04-27T10:03:30.583 回答
0

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

因此,只需先添加两个标签,然后添加按钮,您应该能够正确单击按钮,尽管您的标签将位于按钮下方,并且不确定其中有多少可见。检查为要添加的对象设置的框架。

于 2012-04-27T10:32:52.047 回答
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");
}
于 2012-04-27T09:53:06.407 回答