Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>A simple option without using drawrect is to just put a thin UIView between the two buttons. Set the view's background color to the line color you want.</p> <p><strong>Edit:</strong><br> You could still use thin UIViews and toggle their visibility as needed.<br> If you still want to draw the lines, you might want to create a custom UIView.</p> <pre><code>@interface CustomView : UIView { UIButton *button1; UIButton *button2; } @end @implementation CustomView - (id) initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn1.frame = CGRectMake(20, 5, 80, 30); [btn1 setTitle:@"Button1" forState:UIControlStateNormal]; [btn1 addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; button1 = btn1; [self addSubview:btn1]; UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn2.frame = CGRectMake(20, 60, 80, 30); [btn2 setTitle:@"Button2" forState:UIControlStateNormal]; [btn2 addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; button2 = btn2; [self addSubview:btn2]; } return self; } -(void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); if (button1.selected) CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0); else CGContextSetRGBStrokeColor(context, 0.0, 1.0, 0.0, 1.0); CGContextSetLineWidth(context, 1.0); CGContextBeginPath(context); CGContextMoveToPoint(context, 10.0, 45.0); CGContextAddLineToPoint(context, 150.0, 45.0); if (button1.selected) { CGContextAddLineToPoint(context, 180.0, 35.0); } CGContextDrawPath(context, kCGPathStroke); } -(void)buttonPressed:(UIButton *)button { button1.selected = !button1.selected; button2.selected = !button2.selected; [self setNeedsDisplay]; } @end </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload