【发布时间】:2013-09-10 07:36:36
【问题描述】:
我有 8 个 UIButton。现在我想在这些按钮上创建线条。
我试过了,我可以画一条线。请检查我在做什么。
MyDrawingView.h
#import <UIKit/UIKit.h>
@interface MyDrawingView : UIView{
CGPoint fromPoint;
CGPoint toPoint;
UIColor* currentColor;
UIImage *backgroundImage;
}
@property CGPoint fromPoint;
@property CGPoint toPoint;
@property(nonatomic,retain) UIColor* currentColor;
@end
MyDrawingView.m
#import "MyDrawingView.h"
@implementation MyDrawingView
@synthesize fromPoint;
@synthesize toPoint;
@synthesize currentColor;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
backgroundImage = [UIImage imageNamed:@"office.jpeg"];
}
return self;
}
- (void)drawRect:(CGRect)rect {
//CGPoint drawingTargetPoint = CGPointMake(100,0);
//[backgroundImage drawAtPoint:drawingTargetPoint];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context,10);
CGContextSetStrokeColorWithColor(context, currentColor.CGColor);
CGContextMoveToPoint(context,fromPoint.x , fromPoint.y);
CGContextAddLineToPoint(context, toPoint.x, toPoint.y);
CGContextStrokePath(context);
}
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch* touchPoint = [touches anyObject];
fromPoint = [touchPoint locationInView:self];
toPoint = [touchPoint locationInView:self];
[self setNeedsDisplay];
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch* touch = [touches anyObject];
toPoint=[touch locationInView:self];
[self setNeedsDisplay];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch* touch = [touches anyObject];
toPoint = [touch locationInView:self];
[self setNeedsDisplay];
}
现在在另一堂课上,我在 viewDidLoad 上使用了 8 个按钮,请检查我在做什么。
-(void)viewDidLoad{
8 UIButtons (8 buttons in one line and 10 pixels gap in X-position after every button)
[self method_Call_drawView];
}
-(void)method_Call_drawView{
v = [[MyDrawingView alloc]initWithFrame:CGRectMake(100,350,400,400)];
v.backgroundColor = [UIColor whiteColor];
[v setNeedsDisplay];
[self.view addSubview:v];
}
.h file
#import <UIKit/UIKit.h>
@class MyDrawingView;
@interface iPad_Level1 : UIViewController{
UIButton *btn1;
UIButton *btn2;
UIButton *btn3;
UIButton *btn4;
UIButton *btn5;
UIButton *btn6;
UIButton *btn7;
UIButton *btn8;
MyDrawingView *v;
}
@property(nonatomic,retain)MyDrawingView *v;
@end
我能够创建视图并在视图上画一条线,但我无法触摸 UIButtons 并在其上创建一条线。
无论我点击哪里,我的线路都会增加和减少,但我希望这条线路出现在我的 UIButton 上。
请检查我要做什么 itunes.apple.com/in/app/word-search-puzzles/id609067187?mt=8,检查按钮上的黄线和蓝线。
非常欢迎任何想法或建议。
【问题讨论】:
-
还是不清楚你到底想要什么..
-
使用预制图像可能更容易,因此请按照您希望的方式在图像编辑器中绘制按钮。然后设置按钮以显示您创建的图像。没有看到一个例子就很难知道你想要什么。
-
@smick 谢谢你的回复,但我不明白。
-
@AfreenKhan 取一个高度为 1px 的 UIImageView 并将其放在您的 UIButton 上方,然后根据您的需要进行修改。
-
好的,我在 self.view 上的按钮上使用了 UiImageview。表示 [btn1 addSubview:img1]; ,现在如何在上面创建线?
标签: iphone ios uibutton uicollectionview uitouch