このチュートリアルを使用:http://www.techotopia.com/index.php/An_Example_iOS_4_iPhone_Camera_Application_%28Xcode_4%29 私は写真ライブラリから画像をUIに表示しました。基本的なテキストや図形(正方形のような)をUIImage上に単に重ねることができます。これを行う簡単な方法はありますか?画像にオーバーレイを表示
ありがとうございます。
このチュートリアルを使用:http://www.techotopia.com/index.php/An_Example_iOS_4_iPhone_Camera_Application_%28Xcode_4%29 私は写真ライブラリから画像をUIに表示しました。基本的なテキストや図形(正方形のような)をUIImage上に単に重ねることができます。これを行う簡単な方法はありますか?画像にオーバーレイを表示
ありがとうございます。
UIImageのみを持っていますか、UIImageViewを使用して表示していますか?
UIImageViewをお持ちの場合は、画像ビューにサブビューとしてUILabelを追加することができます。あなたのUIImageViewをmyImageView命名されたと仮定すると、
...
// Create and init the label with any rect.
UILabel *myLabel = [[UILabel alloc] initWithFrame:myImageView.frame]; // The lable has the same size as the Image has.
mylabel.text = @"the text";
[myImageView addSubview:myLabel];
//A subview's coordinates are within its superview's coordinates.
mylabel.center = CGPointMake(myImageView.frame.size.width/2,myImageView.frame.size.height/2) // aligning the centers of the views
//An alternative could be transforming the image's center into the coordinate system of its superviews. That code would look smarter but his example is imho easier to understand.
//Setting front, size, alpha, background colour ...
...
imageViewに画像が表示されています。そのようにしてください: 'UIImage * image = [info objectForKey:UIImagePickerControllerOriginalImage]; imageView.image = image; ' – Objc55
Fine。その場合、上記のコードはうまく動作します。ご覧のように、それはImageViewの中央にLableを配置します。それを自由に変更してください。サブビュー座標系のスーパービューの左上隅に原点(0,0)があることに気をつけてください。もちろん、色や配置などの属性を変更することもできます。 –
お返事ありがとうございます。残念ながら、あなたのコードでは、テキストは表示されますが、上に表示されるはずのイメージが消えて、置き換えられるので、白い背景上に黒いテキストだけが表示されます。 – Objc55
あなたのように、それを透明にする、のUIViewのサブクラスを作成し、このクラスのインスタンスを追加し、あなたの画像と同じサイズすることができますイメージの上にオーバーレイサブビュー。次に、イメージの上に何かを表示する場合は、透過サブビューでsetNeedsDisplayを呼び出し、このビューのdrawRectコールバックに必要なもの(色付きの四角形、テキストなど)を描画します。
は、UIViewのサブクラスを透明にするビュークラスinitWithFrameメソッドにこれを追加するには:[ self setBackgroundColor:[ UIColor clearColor ] ];
オーバーレイUIImageのビュー。テキストが必要な場合は、イメージの後ろにUILabelを追加し、正しい位置にオーバーレイされるようにフレームを設定します。図形については、図形に適切なビューを使用して同じことをします。 – Joe
@Joeしかし、私はコードでこれをやりますか?ありがとう。 – Objc55
申し訳ありませんが、一部の人はインターフェイスビルダーを使用するだけで手に入れることができます。 [iOS向けプログラミングガイドの表示](https://developer.apple.com/library/ios/#DOCUMENTATION/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/CreatingViews.html#//apple_ref/doc/uid/TP40009503-CH5-SW6 ) – Joe