I don't completely buy the argument that junk food is cheaper. Take cereals as an example. At Tesco, 1kg of porridge oats costs £1.09, while a 0.5kg box of sugary Weetos costs £2.50. What will the average parents give their kids for breakfast, the oats or the Weetos? If the average overweight person or family gave me their weekly shopping budget, I don't think I'd encounter a problem in coming back with a nutritionally more adequate and healthy selection of foods.
The other issue to consider is that most people over eat. They simply do not need to eat the amount that they do. If it was true that junk food is cheaper, they should consider spending a lesser amount on quality, healthy foods rather than a greater amount of unhealthy, junk foods.
It's easy to forget how different stores are in the poorer neighborhoods. Try finding a store on a bus route in an inner city neighborhood with fresh and affordable produce! Prices are jacked up and consumers diets truly are hijacked. I often say how much cheaper it's been for me to eat vegan, but that wouldn't be true if I had to rely on public transport, or corner stores. McD's are so often closer walk than a decent grocery.