ラベルを作成しましたが、画面上の表示位置を変更したいので、プログラムでどのように行うことができますか?
初回起動時の画面はこんな感じ。
でも、初めて開いたときにこのように表示したいです。
//simply you change origin for label
//it make animation for moving label in the view
-(void)your_action
{
[UIView animateWithDuration:2
delay:1.0
options: UIViewAnimationCurveEaseOut
animations:^{
label.frame=CGRectMake(0, 0, width, height);
}
completion:^(BOOL finished){
NSLog(@"Done!");
}];
}
//このコードは、ビュー内でラベルをドラッグし、ビュー ラベルの原点をクリックしてタッチ ポイントに変更するために使用されます
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *myTouch = [touches anyObject];
point = [myTouch locationInView:self.view];
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationCurveEaseOut
animations:^{
label.frame = CGRectMake(point.x, point.y,width, height);
}
completion:nil];
}
//enable user interaction for label
ビューから削除します。次に UIlabel のフレームを変更します。次に、ビューに追加します。
[yourLabel removeFromSuperView];
temp.frame=CGRectMake(x,y,width,height); //set the frame as you want
[self.view addSubView:yourLabel];
ラベルのframe
プロパティを変更する必要があります。タイプは次のCGRect
とおりです。
struct CGRect {
CGPoint origin;
CGSize size;
};
位置を変更するには、origin
ポイント値を変更します。ラベルの左上のポイントに対応します。
CGRect labelFrame = [label frame];
labelFrame.origin.x = 50; // set to whatever you want
labelFrame.origin.y = 100;
[label setFrame:labelFrame];
プログラムでラベルを作成すると言ったので、次のようなコードを設定する必要があります。
- (void)viewDidLoad
{
[super viewDidLoad];
yourlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
yourlabel.text = @"text";
yourlabel.userInteractionEnabled = YES;
[self.view addSubview:alabel];
}
これでうまくいくはずです。