我正在使用alertViews向其加载不同的对象,例如textFields和其他对象。 使用textFields没有问题。我已经成功添加了一个UIPickerView作为我的alertView的子视图,我已经调整了alertView.frame的大小以正确保存pickerView,但是后来alertView中的标题和按钮没有居中。 我尝试了很多选项[alertView ... function ...]但似乎没有一个可以解决这个问题。这在自定义大小的alertView中看起来很糟糕。有什么建议吗?
谢谢大家!
答案 0 :(得分:0)
要解决标题问题,我从这篇文章中获得灵感:Custom AlertView With Background
首先,当App呈现alertView时,我调用了一个NSLog来获取:
_titleLabel
的宽度_titleLabel
的起始位置(MinX和MinY)然后我调整了_titleLabel
帧的大小,这就是全部!
textAlignment
默认为中心,因此我所要做的就是调整标签框的大小。其他可能的方法是使用
[theTitle CGAffineTransformMakeTranslation(newXValue, 0];
Y值为0,因为我不希望它垂直移动。但所描述的方法对我来说更清晰。
所以我添加到创建&提示我的alertView的方法是这样的:
注意:此代码必须在向alertView添加任何其他视图之前进行!
//... alertView creation and display
//create a title object to edit titleLable properties
UILabel *theTitle = [pickers valueForKey:@"_titleLabel"];
// set frame for titleLabel to begin where it currently begins in both X and Y, set its width to the width of th e picker +/- the difference in X in case they don't have the same MinX value, and set the height it already has
theTitle.frame = CGRectMake(CGRectGetMinX(theTitle.frame), CGRectGetMinY(theTitle.frame), CGRectGetWidth(pkPais.frame)+6, CGRectGetHeight(theTitle.frame));
//...add subviews and set its frames (in my case, a pickerView)
对于按钮,我在UIAlertView.h文件中发现按钮无法自定义...所以,如果有人对此问题有任何提示,我们将不胜感激。
希望这有助于其他人!
更新:正如我所提到的,Apple表示alertViews中的按钮无法自定义,因此有两种选择:创建自定义按钮并将其添加为子视图或根本没有按钮。在我的情况下,我这样做了,并在pickerView代码的[myAlertView dismissWithClickedButtonIndex:-1 animated:YES]
部分调用了didSelectRow...inComponent
。
这对我很有用,但我对新想法很开心!!
见啊!