代码之家  ›  专栏  ›  技术社区  ›  Omkar Jadhav

以编程方式在ARKit中自定义uibutton

  •  0
  • Omkar Jadhav  · 技术社区  · 15 年前

    我正在玩arkitapi…我想在右边的框中添加自定义ui按钮,该框显示在由下面的代码在app delegate中生成的屏幕上:

    #define BOX_WIDTH 350
    #define BOX_HEIGHT 150
    
    - (UIView *)viewForCoordinate:(ARCoordinate *)coordinate {
    
        CGRect theFrame = CGRectMake(0, 0, BOX_WIDTH, BOX_HEIGHT);
        UIView *tempView = [[UIView alloc] initWithFrame:theFrame];
    
        //tempView.backgroundColor = [UIColor colorWithWhite:.5 alpha:.3];
    
        UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, BOX_WIDTH, 20.0)];
        titleLabel.backgroundColor = [UIColor colorWithWhite:.3 alpha:.8];
        titleLabel.textColor = [UIColor whiteColor];
        titleLabel.textAlignment = UITextAlignmentCenter;
        titleLabel.text = coordinate.title;
        [titleLabel sizeToFit];
    
        titleLabel.frame = CGRectMake(BOX_WIDTH / 2.0 - titleLabel.frame.size.width / 2.0 - 4.0, 0, titleLabel.frame.size.width + 8.0, titleLabel.frame.size.height + 8.0);
    
        UIImageView *pointView = [[UIImageView alloc] initWithFrame:CGRectZero];
        pointView.image = [UIImage imageNamed:@"location.png"];
        pointView.frame = CGRectMake((int)(BOX_WIDTH / 2.0 - pointView.image.size.width / 2.0), (int)(BOX_HEIGHT / 2.0 - pointView.image.size.height / 2.0), pointView.image.size.width, pointView.image.size.height);
    
        [tempView addSubview:titleLabel];
        [tempView addSubview:pointView];
    
        [titleLabel release];
        [pointView release];
    
        return [tempView autorelease];
    }
    

    我怎样才能成功?请帮帮我!

    1 回复  |  直到 15 年前
        1
  •  0
  •   Rob    14 年前

    这是我的密码:

    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    button.frame = CGRectMake(190, 430, 110, 30);
    [button setTitle:@"Retour au plan" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(boutonPlan)
     forControlEvents:UIControlEventTouchUpInside];
    
    // Si il peut, on effectue la MAJ de la vue
    ParkingAppDelegate *appDelegate = (ParkingAppDelegate *)[[UIApplication sharedApplication] delegate];
    arvc = [[ARViewController alloc] initWithDelegate:self];
    //add the button to the view
    [arvc.view addSubview:button];
    

    希望这有帮助。