2012-01-29 40 views
2

我需要知道以下内容;将图像添加到uialertview和有关私有API

1.)我需要以编程方式将图像添加到UIAlertView(如果这不是苹果允许或允许的,那么一些其他合法的方法)?

2.)什么是私有API?我怎么能区分一个?

回答

4

1)执行以下操作:在文档

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert Title" message:@"Message" delegate:self cancelButtonTitle:@"Cancel otherButtonTitles:nil]; 

UIImageView *imageView = [[UIImageView alloc] initWithImage: [UIImage imageNamed: imageName]]; 

[alert addSubview:imageView]; 
[alert show]; 

2)API不会是私有的API不应该使用。

+0

好的,然后ASIHTTPRequest,MBProgressHUD,并有这些库的负载。那他们也不是私人的吗? – sharon 2012-01-29 15:25:01

+1

好吧,它们是私人的,它们不是由苹果制造的。我的意思是说,如果一个类/函数/方法是由苹果公司制作的,但是没有出现在苹果提供的文档中,那么它被认为是私有的,不应该被使用。第三方库不会显示在苹果提供的文档上,但通常可以安全使用。 – 2012-01-29 15:27:51

+0

...除非他们使用私有API,您可以自由使用它们(关于软件许可证) – 2012-01-29 15:42:56

1

Hezi有一个很好的答案,它可能会工作;但检查出的文档UIAlertView,具体地,本节:

子类注 的UIAlertView中类旨在被原样使用 并且不支持子类。 该类的视图层次结构为 private,不得修改。

(最后一句话在这里是重要的东西)。

我建议创建自己的UIView子类,看起来像一个UIAlertView中,然后你可以将其添加(和图像或其他任何你想摆在那里)作为一个子视图,你会不会有意外破损,如果苹果不UIAlertView课程使内脏更私密。

至于苹果的私人API(和私人框架),如果你想在苹果App Store上卖... 甚至不会想到利用它们。苹果拒绝试图做到这一点的应用程序。现在,如果您想将其作为越狱应用来执行此操作,并且不打算在Apple Store上销售,您可能会摆脱这种困境。 Here is a related StackOverflow question更多地谈论他们。

+0

那么这是否意味着我不能在我的项目中使用ASIHTTPRequest,MBProgressHUD或任何其他第三方API? foursquare如何将其发送到应用程序商店,他们有类似于MBProgressHUD的东西 – sharon 2012-01-29 15:41:02

+0

第三方API与私有API不一样。第三方API只是使用Apple现有[public] API的代码片段。 – 2013-08-20 09:23:20