Hi,
Have you checked existing camera work frameWorks on the asset store? Touch.Inputs has some very useful and solid camera systems for example.
Doing it yourself means the following: you have to cut down the feature in the hierarchy, have the camera attached to a dummy, in turn attached to another dummy. The first dummy move the whole thing around, the second dummy rotates and the camera zoom in and out. This way nothing gets in the way.
CAMERA PLATFORM
CAMERA ROTATION
CAMERA
does that make sense? so as you catch user input like you describe, you would only rotate "CAMERA ROTATION"
This means in your case that you can really separate the logic behind checking user input as well.
bye,
Jean