摆脱圆形矩形按钮的圆角(MonoTouch)

Posted

技术标签:

【中文标题】摆脱圆形矩形按钮的圆角(MonoTouch)【英文标题】:Get rid of rounded corners of Round Rect Button (MonoTouch) 【发布时间】:2011-11-19 23:50:33 【问题描述】:

我想去掉 UIButton 的圆角(类型 = 圆形矩形按钮)。我想堆叠一些按钮以提供 UITableView 外观,并希望在某些情况下摆脱圆角。这可能吗? (单触)

【问题讨论】:

【参考方案1】:

如果类型是圆角矩形,则它具有圆角。使用自定义类型来做你想做的事。

如果您在界面生成器中,只需选择自定义类型,即可使用背景图片或普通图层属性(边框、阴影...)。

在代码中,不要创建新类,只需创建一个按钮并将类型设置为自定义。

【讨论】:

好的,所以我将创建一个实现 UIButton 的类并将类型设置为自定义,但其余代码会是什么样子?实际创建角点等的代码? 如果您在界面生成器中,只需选择自定义类型,您就可以使用背景图像或普通图层属性(边框、阴影...)。在代码中,不要创建新的类,只需创建一个按钮并将类型设置为自定义。【参考方案2】:

创建您想要的按钮的图像(在 Photoshop 中,或任何其他浮动您的船),将按钮类型更改为“自定义”,然后将创建的图像导入您的项目并将其设置在“图像:”下拉菜单中在 Interface Builder 中。

Tada,定制完成。

【讨论】:

这不是需要 2 张图片吗?一个用于 Retina,一个用于非 Retina? @BrianDavidBerman 很容易修复,创建第一个按钮,将其保存为 @2x 版本,然后按比例缩小。没什么大不了的。无论您选择如何做,您都会遇到这种情况。【参考方案3】:

查看UIButtonType 以查看您可以创建的所有按钮类型(包括自定义按钮)。例如

var b = new UIButton ();    
b.ButtonType = UIButtonType.Custom;

OTOH,如果您想做类似于 UITableView 的事情,那么我强烈建议您查看 MonoTouch.Dialog 及其示例应用程序 - 其中包括 ownerdraw 元素。这将与处理多个按钮一样容易(或更容易)(并且比使用UITableView 容易很多)。

【讨论】:

至少在 MonoTouch v3.0.4 中,ButtonType 是只读的。可能还有其他方法可以这样做,但您可以使用静态工厂方法中的 Custom 预设创建它:var b = UIButton.FromType(UIButtonType.Custom);

以上是关于摆脱圆形矩形按钮的圆角(MonoTouch)的主要内容,如果未能解决你的问题,请参考以下文章

平铺后如何在QML中获得圆角按钮图像

如何将已经设置好的VC MFC 矩形按钮改成圆形 工程的基类是CView

用贝赛尔曲线把图片, 按钮, label 绘成圆 或圆角矩形

WKInterfaceTable rows - 删除圆形矩形

摆脱圆角框周围的矩形[重复]

Canvas 绘制圆形图片绘制圆角矩形图片?