B.S*_*.S. 67 objective-c uialertview ios ios7
添加一些控件UIAlertView已在iOS7中使用addSubview方法弃用.据我所知,Apple承诺增加contentView财产.
iOS 7现已发布,我发现此属性未添加.这就是为什么我搜索一些能够为此alertView添加进度条的自定义解决方案.例如类似于TSAlertView的东西,但更适合在iOS 7中使用.
Wim*_*guc 55
这是Github上的一个项目,可以将任何UIView添加到iOS7上的UIAlertView外观对话框中.
(从此StackOverflow线程复制.)

Sul*_*han 35
我只花了一天时间创建了自己的警报视图,看起来与Apple的完全一样
UIButton现在,默认表格单元格已经足够了).请注意,您需要3个按钮表:两个用于左右按钮(每当按钮数为2时),另一个用于其他情况(一个按钮或超过2个按钮).UIAlertView在自定义警报上实施所有方法.
显示/解除 - 您可以为警报创建特定的模态窗口,但我只是将警报放在我的根视图控制器之上.将可见警报注册到静态阵列.如果显示第一个警报/解除最后一个,请将窗口/视图控制器的色调模式更改为灰色/自动并添加/删除调光视图(黑色,alpha = 0.2).
编辑:
模糊背景和paralax效果示例代码都可以在"iOS_RunningWithASnap"WWDC 2013示例代码中找到
Paralax效果:
UIInterpolatingMotionEffect* xAxis = [[[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.x"
type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis] autorelease];
xAxis.minimumRelativeValue = [NSNumber numberWithFloat:-10.0];
xAxis.maximumRelativeValue = [NSNumber numberWithFloat:10.0];
UIInterpolatingMotionEffect* yAxis = [[[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.y"
type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis] autorelease];
yAxis.minimumRelativeValue = [NSNumber numberWithFloat:-10.0];
yAxis.maximumRelativeValue = [NSNumber numberWithFloat:10.0];
UIMotionEffectGroup *group = [[[UIMotionEffectGroup alloc] init] autorelease];
group.motionEffects = @[xAxis, yAxis];
[self addMotionEffect:group];
Run Code Online (Sandbox Code Playgroud)
模糊的背景是唯一复杂的事情.如果您可以使用不透明颜色,请使用它.否则,这是很多实验.另请注意,背景模糊不清是背景黑暗的好方法.
对于show/dismiss animationg,我使用的是新的spring动画方法:
void (^animations)() = ^{
self.alpha = 1.0f;
self.transform = CGAffineTransformIdentity;
};
self.alpha = 0.0f;
self.transform = CGAffineTransformMakeScale(0.5f, 0.5f);
[UIView animateWithDuration:0.3
delay:0.0
usingSpringWithDamping:0.7f
initialSpringVelocity:0.0f
options:UIViewAnimationOptionCurveLinear
animations:animations
completion:^(BOOL completed) {
//calling UIAlertViewDelegate method
}];
Run Code Online (Sandbox Code Playgroud)
Sco*_*ets 32
我编写了一个完整的UIAlertView实现模仿完整的UIAlertView API,但添加了我们所需要的contentView属性:SDCAlertView.

Esh*_*nya 27
对于那些喜欢简单有效的方法而不必编写代码行的人.这是一个很酷的解决方案,没有使用任何其他私有框架工程,用于将子视图添加到ios 7警报视图,即
[alertView setValue:imageView forKey:@"accessoryView"];
示例代码以便更好地理解,
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(180, 10, 85, 50)];
UIImage *wonImage = [UIImage imageNamed:@"image.png"];
[imageView setImage:wonImage];
//check if os version is 7 or above
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
[alertView setValue:imageView forKey:@"accessoryView"];
}else{
[alertView addSubview:imageView];
}
Run Code Online (Sandbox Code Playgroud)
希望它有所帮助,谢谢:)
小智 17
对于IOS7
UIAlertView *alertView1 = [[UIAlertView alloc] initWithTitle:@"Enter Form Name"
message:@""
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Ok", nil];
alertView1.alertViewStyle = UIAlertViewStyleSecureTextInput;
UITextField *myTextField = [alertView1 textFieldAtIndex:0];
[alertView1 setTag:555];
myTextField.keyboardType=UIKeyboardTypeAlphabet;
[alertView1 show];
Run Code Online (Sandbox Code Playgroud)
nul*_*ull 10
UIAlertView在iOS7中不会有自定义视图,也不会contentView改变Apple的想法,所以addSubview现在不可能UIAlertView.
根据Apple论坛中的许多主题,一个很好的选择是SVProgressHUD.
编辑:
在iOS7中正式没有addSubview或没有子类.UIAlertView
UIAlertView类旨在按原样使用,不支持子类化.此类的视图层次结构是私有的,不得修改.
其他好的选择:
| 归档时间: |
|
| 查看次数: |
85046 次 |
| 最近记录: |