は、私はこのポストからインスピレーションを得た:すべてのCustom AlertView With Background
まず、アプリケーションはalertViewを提示したときに、私が取得するのNSLogと呼ばれる:
- pickerViewさん(私のサブビュー)幅
_titleLabel
の幅_titleLabel
- の開始位置(ミンクスと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ファイルで見つかりました。
これが他の人に役立つことを願っています。
アップデート:アップルは、alertViewのボタンをカスタマイズすることはできないと言っているので、カスタムボタンを作成してサブビューとして追加することも、ボタンを一切持たないこともできます。私の場合、私はそうし、[myAlertView dismissWithClickedButtonIndex:-1 animated:YES]
をdidSelectRow...inComponent
のピッカービューコードの一部に入れました。 これは私のためにうまくいきましたが、私は新しいアイデアを公開しています!
ya!