I2C data sampling is done at clock edge or level
Data transfer-

The state of SDA(high or low) can change only when SCL is low. This means SDA must be stable when SCL high. 

Sampling is done while the SCL going 0 to 1 state. Changing SDA when SCL is low provides some timing margin for accurate sampling.


As for I2C itself is a mutual interface standard. Both sides(TX and RX) can control the SDA line in different times. So SDA pins on both sides must be birectional. 

Start and Stop Conditions-

Start: when SCL:HIGH , Falling edge of SDA occurs

Stop: when SCL: HIGH , Rising edge of SDA occurs