我有一项基本任务,作为我在iOS objective-c的1周培训的一部分。我的经理告诉我,不关心ui的设计是可以的,但我想尽可能地给他留下深刻印象lol。所以我非常推动自己达到极限。
是否可以对按钮进行编码以使其成为六边形?我尝试在谷歌以及stackoverlfow上搜索,但发现了与web开发和android相关的问题。
答案 0 :(得分:0)
创建UIButton
的子类并覆盖drawRect
方法。
- (void)drawRect:(CGRect)rect
{
float polySize = 60; // change this
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGAffineTransform t0 = CGContextGetCTM(context);
t0 = CGAffineTransformInvert(t0);
CGContextConcatCTM(context, t0);
//Begin drawing setup
CGContextBeginPath(context);
CGContextSetRGBStrokeColor(context, 0, 0, 0, 1);
CGContextSetLineWidth(context, 2.0);
CGPoint center;
//Start drawing polygon
center = CGPointMake(60, 60.0);
CGContextMoveToPoint(context, center.x, center.y + polySize);
for(int i = 1; i < 6; ++i)
{
CGFloat x = polySize * sinf(i * 2.0 * M_PI / 6);
CGFloat y = polySize * cosf(i * 2.0 * M_PI / 6);
CGContextAddLineToPoint(context, center.x + x, center.y + y);
}
//Finish Drawing
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathStroke);
CGContextRestoreGState(context);
}