簡體   English   中英

自定義按鈕框架看起來不如Round Rect UIButton

[英]Custom Button frame doesn't look as good as Round Rect UIButton

我正在嘗試繪制自定義按鈕框架,如下所示:

UIBezierPath *stroke = [UIBezierPath bezierPathWithRoundedRect:self.bounds
                                                  cornerRadius:RECT_CORNECR_RADIUS];

[stroke stroke];

但是由於某種原因,拐角曲線看起來比側面更思想。 如果您查看UIButton的默認框架,它是非常統一的。 A是UIButton,B是自定義按鈕。

關於如何使它更像UIButton的任何想法。

A是UIButton,B是自定義按鈕

您正在撫摸按鈕的邊界。 這會將您的線條繪制在視圖邊緣的中心,因此線條的一半厚度不在邊界范圍內,因此不會繪制。 這就是為什么它在拐角處全厚。 在邊界矩形上使用CGRectInset (插入線的一半粗細),然后筆直對齊。

您遇到的問題可能是由於抗鋸齒。 您可以在繪制beizerPath之前嘗試更改CoreGraphics的抗鋸齒設置。

一個更簡單的解決方案是使用按鈕的CALayer及其cornerRadius屬性。 畫一個圓角會更容易

如果self是您的自定義按鈕:

self.layer.cornerRadius = RECT_CORNER_RADIUS;
self.layer.borderWidth = 1.0f;
self.layer.borderColor = [UIColor blackColor].CGColor;

當然,不要忘記導入QuartzCore框架並導入其標頭以使其正常工作 (#import)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM