2011-08-02 15 views
0

私はalertFindsを使って、textFieldsなどの異なるオブジェクトを読み込みます。 textFieldsに問題はありません。私は正常に私のalertViewのサブビューとしてUIPickerViewを追加し、私はpickerViewを適切に保持するalertView.frameのサイズを変更したが、alertViewのタイトルとボタンは中央にない。 私は多くのオプション[alertView ... function ...]を試しましたが、どれもこの問題ではうまくいかないようです。カスタムサイズのalertViewではこれが悪いようです。助言がありますか?カスタムサイズの中心タイトルとボタンUIAlertView iOS

ありがとうございました!タイトルの問題を解決するために

答えて

0

は、私はこのポストからインスピレーションを得た:すべての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!