2011-07-28 49 views
9

看到蓝色不符合我的UI界面,我只是想知道是否有方法来改变uialertview的颜色,或使用图像。随着所有的按钮,“辞退”等仍然存在自定义UIAlertView?

感谢

+0

你可以提出一个模式/酥料饼的观点maybe-只是一个想法?使它看起来像一个警报,并作出解雇按钮,驳回它? –

+1

这项工作?它仍然是蓝色的。 https://github.com/kyoshikawa/ZPopoverController – Sum

回答

0

您可以去通过其子视图,改变你需要改变,或者它的子类的东西。因为UIAlertView中从UIView的继承您可以使用:

myAlertView.subViews 

和修改意见或子类UIAlertView中创建自定义AlertView。这是一篇关于如何将UIAlertView分类以获得任何想要的设计/颜色的非常好的文章。

Subclassing UIAlertView

基本上要覆盖的是这种方法:

- (void) drawRect:(CGRect)rect 

希望有所帮助。

1

您可以尝试使用透明背景呈现模态视图控制器。

ModalViewController *popupController = [[ModalViewController alloc] initWithNibName:@"ModalViewController" bundle:nil]; 
[self presentModalViewController:popupController animated:NO]; 

像这样的ModalView(http://stackoverflow.com/questions/849458/transparent-modal-view-on-navigation-controller)

这样你可以创建一个自定义警报,但它确实是一种模式化的视图,您可以自定义

+7

仅供参考使用这种方法 - 即使透明背景呈现视图控制器,也会使背后的视图消失,留下白色背景。它可能不会是你正在寻找的效果。 – kris

20

CodeCropper的优秀人员只是推出了一个开源控件,可以让您创建自定义警报视图。这很棒。

enter image description here

https://github.com/gpambrozio/BlockAlertsAnd-ActionSheets

+0

链接被破坏 –

+0

@Qamar:感谢您的支持。链接已更新。 –

+1

这个项目的问题在于它使用ARC。如果你的项目没有使用ARC,你会得到左右编译问题。我不明白为什么人们使用ARC? –

0

你可以使用一个UIView而不是UIAlertView中,可以很容易地根据自己的需要

0

你可以使用CODialog定制的UIView。它的风格完全可配置。

0

子类UIAlertView不是一个选项,这个类不打算被子类化,这样做可能是应用程序拒绝的原因。

相反,你可以尝试去通过所有警报视图的子视图或创建自己的类

在你要创建自己的类时,这里有一个例子如何假UIAlertView中:

http://iosdevtricks.blogspot.com/2013/04/creating-custom-alert-view-for-iphone.html

+0

你是对的,这是Apple的一句话“UIAlertView类是按原样使用的,并且不支持子类。这个类的视图层次是私有的,不能修改。”因此创建具有类似功能的新类似乎是唯一的选择 – marika

0

如果查找定制警报查看,那么它可能会有所帮助。

https://github.com/Pradeepkn/PKCustomAlertView/ 

希望它有助于某人。不需要设置代表。一旦动作完成相同的方法,您将收到回电。 享受:)

Custom Alert view

Table Alert view