use another interface of colorWithHexString to avoid the accidental
situation that the origin method cannot be entered