我有一个UItextFeild作为搜索栏,单击带有建议open的表格视图。现在我要单击该行并在图像下方的视图中创建一个带有标签的按钮,如图所示。如何实现此ios - 从数组一一获取元素并创建按钮-LMLPHP

我想要一种方式,当我单击行时,它会在视图上创建一个按钮,并隐藏UITableView,然后再次开始搜索,然后再次单击另一行,以使按钮具有不同的X值。

 _selectednames = [NSMutableArray arrayWithCapacity:self.sortedArray.count];


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
       {
           // MGContactItemsModel *model = _arrayForContacts[indexPath.row];
    self.searchText.text = [NSString stringWithFormat:@"%@",[_sortedArray  objectAtIndex:indexPath.row]];
self.tableView.hidden = YES;

[_selectednames addObject:_searchText.text];

for (int i; i < _selectednames.count ; i++) {
    [self makeLabelsAndButtons:i];

       }

现在在我的makeLabelsAndButtons功能中,我做了这样的事情
CGFloat xOffset = 10.0f;
int buttonCount = 0;

CGRect buttonFrame = CGRectMake(xOffset, 10.0, 50.0, 15.0);

NSString *nameString = [self.selectednames objectAtIndex:indexPath];

     UIButton *_button = [UIButton buttonWithType:UIButtonTypeCustom];
    [_button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
   //_button.frame = CGRectMake(xOffset, 10.0, 50.0, 15.0);
   for(int i=buttonCount; i >0;i++) {

    xOffset = xOffset+10;


    buttonFrame.origin.x += buttonFrame.size.width+xOffset;





}
 _button.frame = buttonFrame;
   buttonCount++;


_button.tag = indexPath;



//button.center = CGPointMake(xOffset, 10.0f);
//[button setBackgroundImage:[UIImage imageNamed:picString] forState: UIControlStateNormal];
[_button setTitle:self.selectednames[indexPath] forState:UIControlStateNormal];
_button.backgroundColor = [UIColor lightGrayColor];
    _button.titleLabel.font = [UIFont fontWithName:@"Arial" size:8.0f];

    _button.layer.cornerRadius = 10.0f;
    _button.layer.masksToBounds = YES;

[self.buttonView addSubview:_button];
NSLog(@"name: %@", nameString);

也单击按钮将被删除。任何帮助将是感激的。

最佳答案

它对我有用。请尝试。

 y=20;
 x=20;

            for (int i=0; i<[arrAssignUsers count]; i++) {
                CGRect screenRect=[[UIScreen mainScreen]bounds];
                CGFloat screenWidth=screenRect.size.width;


                [arrBtnStatus addObject:[NSNumber  numberWithBool:NO]];

                NSString *strNames=[arrAssignUsers objectAtIndex:i];
                stringsize=[strNames sizeWithAttributes:
                            @{NSFontAttributeName: [UIFont systemFontOfSize:20.0f]}];
                btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
                CGFloat m=x+stringsize.width+10;
                CGFloat n=screenWidth-20;

                if (m<=n) {
                    btn.frame=CGRectMake(x, y,stringsize.width,stringsize.height);
                    x=x+stringsize.width +10;
                }
                else
                {
                    y=y+stringsize.height+10;
                    x=20;
                    btn.frame=CGRectMake(x, y,stringsize.width,stringsize.height);
                    x=x+stringsize.width+10;
                }

                [btn setTitle:self.arrAssignUsers[i] forState:UIControlStateNormal];
                [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
                btn.tag=i;
                [btn addTarget:self
                        action:@selector(notifyButtonPressedInEditTask:) forControlEvents:UIControlEventTouchUpInside];

                btn.backgroundColor=WHITE_COLOR;
                btn.layer.cornerRadius=10;
                [btn.layer setMasksToBounds:YES];
                btn.layer.borderWidth=2.0f;
                btn.layer.borderColor=[UIColor orangeColor].CGColor;

                [self checkNotifybtnStatus:btn];
                [cell addSubview:btn];
            }
        }

可能对您有帮助。谢谢

10-04 22:18
查看更多