我有像圖像氣泡,我需要動態調整大小。 附加示例。 我將有動態文本,我只需要調整泡沫的直線部分。在中間留下箭頭 我該怎麼做? 感謝UIImage如何用capInsets調整泡泡圖像的大小?
1
A
回答
1
我認爲resizableImageWithCapInsets:
會爲你
例子非常有用:
UIImage *image = [[UIImage imageNamed:@"buttonImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(5.0,10.0,5.0,10.0)];
[self.yourButton setBackgroundImage:image forState:UIControlStateNormal];
我寫了按鈕的例子,因爲它是使用這種方法的一個常見的情況。只玩限制值。
HTH!
編輯:
想過這個問題,寫了小例子。 我明白,resizableImageWithCapInsets:
可以保存圖像的角落,以防我們使用二維尺度。
我看到2種方式:
- 使用兩個控件:一個用於氣球和一個箭頭適當的圖像
- 從兩個圖像
我決定渲染這一個控制圖像實現第二個。 通ballonView.frame作爲參數在這裏:
- (UIImage *)balloonImageWithRect:(CGRect)rect{
//create two images, ballon image with cap corners
UIImage *ballonImage = [[UIImage imageNamed:@"balloon"] resizableImageWithCapInsets:UIEdgeInsetsMake(IMAGE_CAP_INSET_TOP, IMAGE_CAP_INSET_LEFT, IMAGE_CAP_INSET_BOTTOM, IMAGE_CAP_INSET_RIGHT) resizingMode:UIImageResizingModeStretch];
UIImage *arrowImage = [UIImage imageNamed:@"arrow"];
//drawing area
CGSize newSize = rect.size;
UIGraphicsBeginImageContext(newSize);
//leave some space for arrow at the bottom
[ballonImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height - arrowImage.size.height)];
//draw arrow at the bottom
[arrowImage drawInRect:CGRectMake((newSize.width - arrowImage.size.width)/2, newSize.height - arrowImage.size.height, arrowImage.size.width, arrowImage.size.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
然後我們就這個形象設定爲我們的ballonView。
而且我離開要點與該氣囊的隨機尺寸是視圖控制器的全碼:https://gist.github.com/AlloyDev/7910637
您也可以使用兩個圖像:
1
您可以使用方法:
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;
這樣的電話號碼:
UIImage* image = [[UIImage imageNamed:@"bubbleImageName.png"]
stretchableImageWithLeftCapWidth:15 topCapHeight:13];
變化capWidth和大寫高度重視
+0
這幫了我。謝謝 :) –
0
使用UIImage.h
委託方法
//使用resizableImageWithCapInsets:和capInsets。
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;
@property(nonatomic,readonly) NSInteger leftCapWidth; // default is 0. if non-zero, horiz. stretchable. right cap is calculated as width - leftCapWidth - 1
@property(nonatomic,readonly) NSInteger topCapHeight; // default is 0. if non-zero, vert. stretchable. bottom cap is calculated as height - topCapWidth - 1
這樣
UIImage *balloon = [[UIImage imageNamed:@"grey.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
希望這會有所幫助。
0
對於問題的圖像(假設它是一個視網膜圖像):
[[UIImage imageNamed:@"Bubble"] resizableImageWithCapInsets:UIEdgeInsetsMake(14, 28, 14, 26) resizingMode:UIImageResizingModeStretch];
如果你在問題中所提供的圖像是一個非視網膜圖像,減少一半的值。
修改值(UIEdgeInsetsMake(top, left, bottom, right)
)以適合您需要的任何圖像。
相關問題
- 1. 如何相應調整圖像/聊天泡泡的大小?
- 2. 調整大小圖像使用capinsets
- 3. QlikView:調整氣泡大小
- 4. SSRS BIDS 2008氣泡圖 - 泡泡傳奇大小
- 5. Excel泡泡圖泡泡名
- 6. 調整泡泡破壞區域
- 7. OS X聊天應用與可調整大小的氣泡
- 8. 如何讓標準的iPhone複製泡泡出現在UIImage上?
- 9. Highcharts - 泡沫圖需要更小的泡沫面前更大
- 10. 用Java調整圖像大小。如何調整大小
- 11. 如何將泡泡顯示到圖像使用壁畫?
- 12. 如何泡泡? | C#
- 13. 縮放/調整大小氣泡圖上的所有的氣泡的直徑(在WPF或Silverlight)
- 14. 如何在調整圖像大小時調整圖像大小使用drawImage
- 15. 如何在libgdx遊戲中像泡泡射擊遊戲那樣生泡泡
- 16. 如何用圖像替換氣泡?
- 17. 使用Excel在泡泡圖的每個泡泡內繪製一張餅圖?
- 18. 如何在調整窗口大小時調整圖像大小?
- 19. 如何根據圖像大小調整圖像視圖大小?
- 20. 如何在圖像頂部放置一個思想泡泡CSS
- 21. 如何製作此Android泡泡ListView列表項,以便背景根據文字大小調整
- 22. Flex氣泡圖泡泡縮放
- 23. CSS語音氣泡自動調整大小?
- 24. 如何調整Uri的圖像大小?
- 25. 如何調整圖像的大小
- 26. 如何實現像用戶界面的「代碼泡泡」?
- 27. 如何查找圖像中的氣泡?
- 28. 如何讓圖像視圖在屏幕上像泡泡一樣浮動?
- 29. Android幫助泡泡圖標
- 30. rcharts微凹泡泡圖表
可能的重複:http://stackoverflow.com/questions/20117787/custom-resizable-image-drawing-in-ios –