UIButton よりも非常に短いテクスチャを取得しました。
私はこのテクスチャを得ました:
そして、私はこのボタンを作成する必要があります:
このテクスチャを(タイルではなく)どのように伸ばす必要がありますか?横方向のストレッチ
thnx
あなたが提供したサンプル画像から、私はあなたが探していると確信していUIImage
ますresizableImageWithCapInsets:
UIImage *originalImage = [UIImage imageNamed:@"myImage.png"];
UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
UIImage *stretchableImage = [originalImage resizableImageWithCapInsets:insets];
[myButton setBackgroundImage:stretchableImage forState:UIControlStateNormal];
// the image will be stretched to fill the button, if you resize it.
UIEdgeInsets 構造体の値は、引き伸ばしたくないマージンを決定します。左と右の値は、次のように広い可能性があります。
上下の値は 0 (ボタンの縦方向のサイズを変更したくない場合) にするか、おそらく全高の半分にすることができます。
タイリングしないことで、使用できないと思います
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
あなたが望むことをする方法は、使用することです:
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0); // should be proportionally larger
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, (CGRect){{0,0}, newSize}, [yourImage CGImage]);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
または伸縮可能な画像を使用する:
UIImage* imgbkg =[[UIImage imageNamed: @"my_bkg_image.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:10];
[_button setBackgroundImage: imgbkg forState: UIControlStateNormal];
特定の側を伸ばしたくない場合は、0を使用します。
stretchableImageWithLeftCapWidth:topCapHeight:
メソッドを使用します。
参照: https://github.com/boctor/idev-recipes/tree/master/StretchableImages