0

UISliderのサイズを変更するために使用できる がありますUITextView
のサイズを変更する前textviewはすべて問題ないように見えますが、フレームを数回変更した後、右側にパディングが追加されます。

前:
リサイズ前
後:
リサイズ後

textview( ) は一番_tvInput上のもので、他のビュー コンテナーには配置されません。

フレームを変更するために使用するコードは次のとおりです。

-(IBAction)widthChanged:(UISlider *)sender{
    CGRect frame = _tvInput.frame;
    frame.size.width = sender.value;
    frame.size.height = MIN(_tvInput.contentSize.height, [self tvMaxHeight]);
    if (sender.value<=_tvInput.superview.frame.size.width-20) {
        frame.origin.x = (_tvInput.superview.frame.size.width-frame.size.width)/2;
    }
    _tvInput.frame = frame;
}

それで、これを引き起こす原因、さらに重要なことに、それを修正する方法はありますか?
のリセットを試みcontentInsetましtextViewたが、問題ないようです。私もcontentSize手動で設定しようとしましたが、それでもうまくいきませんでした。

4

2 に答える 2

1

ああ、私はこの行を変更することでそれを修正することができました (float から int への変換に注意してください):

frame.size.width = (int)sender.value;

それが問題を引き起こす理由がわかりません。見た目から、小数部分が幅を変更して右のパディングに追加し続けます。

于 2013-06-23T10:08:28.897 に答える