2012-01-24 14 views
1

xCodeで次のコードを使用していますが、最初にスクロールビューでUIImageをズームするにはどれくらいの労力を要しますか?奇妙な振る舞い整数

int heightRatio = self.scrollView.bounds.size.height/self.imageView.image.size.height; 

奇妙なことは、私が減算を行うと、分裂ではないことです。

XCodeは両方の高さ変数を "GLuint"として記述しています。これはintのグラフィックバージョンです。

私は右にNSLogged両方の番号を持っていてどちらもゼロです。

私はGLuintとしても、喜びがなく、またNSNumberに変換されているようにheightRatioを定義しようとしましたが、ちょっと面倒です。

何か不足していますか?

フィードバックありがとうございます。

+0

彼らは 'GLuint'sではなく、' CGFloat'sです。 'bounds'は' CGRect'であり、 'bounds.size'は' CGSize'で、2つの 'CGFloat's、width&heightを含んでいます。それがなぜゼロであるかわからない。 – mattjgalloway

答えて

3

heightRatiodoubleと宣言してください(intにしたい場合は後でラウンドしてください)。

+0

ああ神、どのように恥ずかしいほど簡単、ありがとう! – Alan

1

self.scrollView.bounds.size.heightおよびself.imageView.image.size.heightはいずれもCGFloatです。 heightRatioCGFloatと宣言すると、0と1の間で除算結果を正しく取り込むことができます。後で整数にする必要がある場合は、ceil(),trunc()またはround()を使用して切り上げます。

+0

明確化のために乾杯、CodeBrickieはそれを下に把握しています... – Alan

0

残念ですが、二重では不十分かもしれません。データを失うことなく除算を行う唯一の方法は、NSDecimal番号を使用することです。ここでは、サンプルコードは、ループ内の作業の割合を表示します

NSDecimalNumber *Percentuale = [[[NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%i",ClienteNr]] decimalNumberByDividingBy:[NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%i",[[Globals ClientiDaMostrareMappa] count]]]] decimalNumberByMultiplyingBy:[NSDecimalNumber decimalNumberWithString:@"100"]]; 
    [Globals.WaitAlert setTitle:[NSString stringWithFormat:@"Localizzazione Clienti!\nAttendere... %i%%",[Percentuale intValue]]];