UILabelまたは変更可能なテキストを実際に設定しようとしていますので、設定した間隔で画面上の異なる点に移動します。私はインターバルのためにタイマーを使用するつもりですが、ラベルをどのように動かすかは全く分かりません。誰かが私を正しい方向に向けるのを探しています。すべての助けは非常に感謝しています。UILabelを画面上のランダムな点に移動するように設定しようとしています
答えて
依存しますか、アニメーションしますか?
:あなたは運動をアニメーション化したくない場合はは、それがアニメーションブロックを追加するにはケーキだ、あなたは運動をアニメーション化したい場合は、その中心点
UILabel* label; //Previously initialized UILabel
float newX = 90.0f;
float newY = 101.0f;
label.center = CGPointMake(newX, newY);
を変えるのと同じくらい簡単です
UILabel* label; //Previously initialized UILabel
float newX = 90.0f;
float newY = 101.0f;
[UIView transitionWithView:label
duration:0.5f
options:UIViewAnimationCurveEaseInOut
animations:^(void) {
label.center = CGPointMake(newX, newY);
}
completion:^(BOOL finished) {
// Do nothing
}];
EDIT:iOSの4、アニメーションare the block-based methodsのための推奨されるアプローチのよう
。たとえば:
transitionFromView:toView:duration:options:completion:
とtransitionWithView:duration:options:animations:completion:
これらのメソッドは、iOS 4+でのみ利用可能ですので、あなたが以前のものを対象とする必要がある場合、あなたはUIView Class Referenceに概説されたその他の方法を使用する必要があります。
blocks
ベースのアニメーションを使用すると、コードを大幅に簡略化し、そうでなければコールバックなどのために実装する必要のあるすべてのデリゲートメソッドでスパゲティのようにすることができます。使用するのに貴重な時間です。
ちょうど行います
[myLabel setFrame:CGRectMake(/*x location*/, /*y location*/, /*width*/, /*height*/)];
とアニメーションがそうのように行うことができます。
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
// whatever you want animated
[UIView commitAnimations];
ブロックベースのアニメーショントランジションは、iOS 4の推奨アプローチです。http://developer.apple.com/library/ios/documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816 -CH3-SW131 –
あなたはラベルをドラッグするためとUILabel、あなたにそのクラスのプロパティを設定することによって、定義するクラスでラベルをドラッグすることができますそのラベルを画面のどこにでも簡単にドラッグできます。ラベルはすべて、それぞれのデリゲートメソッドを呼び出しますし、それをドラッグ触れたときdragLabelクラス型のプロパティを設定した後
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
NSLog(@"touches began");
// Retrieve the touch point
CGPoint pt = [[touches anyObject] locationInView:self];
startLocation = pt;
[[self superview] bringSubviewToFront:self];
CGRect f1=[self frame];
//Top Line
line1=[[UIView alloc] initWithFrame:CGRectMake(-500, f1.origin.y, 1300, 1)];
line1.backgroundColor=[UIColor colorWithRed:0 green:0 blue:1.0f alpha:.30f];
[[self superview] addSubview:line1];
//Bottom Line
line2=[[UIView alloc] initWithFrame:CGRectMake(-500, f1.origin.y+f1.size.height, 1300, 1)];
line2.backgroundColor=[UIColor colorWithRed:0 green:0 blue:1.0f alpha:.30f];
[[self superview] addSubview:line2];
//front Line
line3=[[UIView alloc] initWithFrame:CGRectMake(f1.origin.x, -500, 1,1300)];
line3.backgroundColor=[UIColor colorWithRed:0 green:0 blue:1.0f alpha:.30f];
[[self superview] addSubview:line3];
//Rear Line
line4=[[UIView alloc] initWithFrame:CGRectMake(f1.origin.x+f1.size.width,-500, 1, 1300)];
line4.backgroundColor=[UIColor colorWithRed:0 green:0 blue:1.0f alpha:.30f];
[[self superview] addSubview:line4];
}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
NSLog(@"touches moved");
// Move relative to the original touch point
CGPoint pt = [[touches anyObject] locationInView:self];
CGRect frame = [self frame];
frame.origin.x += pt.x - startLocation.x;
frame.origin.y += pt.y - startLocation.y;
if(frame.origin.x < 0) {
frame.origin.x= 0;
}
else if((frame.origin.x+ frame.size.width) > 380) {
frame.origin.x = 380-frame.size.width;
}
if(frame.origin.y < 0) {
frame.origin.y= 0;
}
else if((frame.origin.y + frame.size.height) > 280) {
frame.origin.y = 280-frame.size.height;
}
//Top Line
CGRect frameLine = [line1 frame];
frameLine.origin.x = -500;
frameLine.origin.y =frame.origin.y;
[line1 setFrame:frameLine];
//Bottom Line
frameLine = [line2 frame];
frameLine.origin.x = -500;
frameLine.origin.y = frame.origin.y + frame.size.height;
[line2 setFrame:frameLine];
//front Line
frameLine = [line3 frame];
frameLine.origin.x= frame.origin.x;
frameLine.origin.y= -500;
[line3 setFrame:frameLine];
//Rear Line
frameLine = [line4 frame];
frameLine.origin.x=frame.origin.x+frame.size.width;
frameLine.origin.y= -500;
[line4 setFrame:frameLine];
[self setFrame:frame];
}
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
[line1 removeFromSuperview];
[line2 removeFromSuperview];
[line3 removeFromSuperview];
[line4 removeFromSuperview];
}
。
- 1. iOSホーム画面のブックマーク - mobileSafariに移動しないようにしますか?
- 2. CSSとjQueryを使用して画面上のパネルを移動しようとしています
- 3. 拡張スプラッシュ画面からuwpの別の画面に移動しようとしています
- 4. は私が見つけた設定画面に移動しようとしているあるpreferences.xml
- 5. ゲームサーバーのローディング画面を設定しようとしています
- 6. これを画面の右上に修正しようとしています
- 7. アンドロイドオーバーレイ画像Iは、画面の最上部に、このオーバーレイ画像に合うようにしようとしています画面
- 8. ActiveWorkbookを画面上部のウィンドウとして設定するにはどうすればよいですか?
- 9. ボタンコントロールを画面の解像度に関係なく画面に収まるように設定します
- 10. UILabelの動作を理解しようとしています。
- 11. 私はWEBGL上に平面サーフェスを描画しようとしています
- 12. どのように私はこの画像を表示CoreText Kit..pleaseを使用してUILabelのテキストの上に裏面に画像を設定したいcoretext
- 13. jlabel上のアイコンを設定しようとしています。
- 14. Android - PhoneGap - スプラッシュ画面を伸ばしないように設定する
- 15. キャラクターをキャンバス上に移動するが画面上に移動させない
- 16. ボタン(onClick)を画面上のランダムな位置に移動させます。
- 17. "新しいランダム()"のようにランダムにシードを一時的に設定する
- 18. 画像をアップロードして画面に表示しようとしています
- 19. ExceptionInInitializerError JNLP画面を起動しようとしている
- 20. ログイン画像に背景画像を設定しようとしています
- 21. 画面上のランダムな位置で永久にスプライトを移動する
- 22. UILabelとUITextFieldフォントサイズを画面サイズに相対するようにする方法
- 23. カレンダーアイコンをテキストボックスに移動しようとしています
- 24. 別ウィンドウが開いたときにウィンドウフォームが画面間を移動しないようにする
- 25. ウェブブラウザコントロールで画面に収まるようにイメージを設定
- 26. 画面の高さと幅としてスタイルを設定しようとしています。
- 27. Visual Basic.NETで画面の一番上に移動した後、一番下に戻るようにシェイプを移動して戻す方法はありますか?
- 28. フライフライのようなランダム循環移動?
- 29. アンドロイド - 設定画面に移動
- 30. Toadは画面上にマリオと一緒にいないようにする
私の答えではなく、あなたがここで説明したようにアニメーションを行う利点はありますか?それらはどう違いますか?私は前にこの方法を見ていないし、私はその違いが何か不思議です。 – Jumhyn
情報ありがとう! – Jumhyn
これは素晴らしいです。ありがとう。今私は、ランダムに5つの特定のポイント間を移動する方法を理解する必要があります。どのような推測が難しいでしょうか。 – HenryGale