First: You are right. This is no good design.
Second: You calculate the size of a number view inside the model. But a number view should know its size itself. It knows the number through its data source and can get the digits. So it has all information for calculating its size.
To show the problem, just imagine (even this situation is on iOS not that common), that you display the same number at two places (= with to different number views). This would break your model. Why?
Solution: Put all code related to a graphic state (drawing, size, …) into the number view and digit view. On half of the way that will be additional work. But at the end, when every code is migrated to the view layer, it is as easy as computing it inside the model.