# How to refresh `UIView`

Let's say you have a `UIView`, and you want to update what it looks like after fetching some data.

So you're after the equivalent of `tableView.reloadData()`, but for a `UIView`.

A search on Stack Overflow suggests that you can use `yourView.setNeedsLayout()`.
But that doesn't seem to work.

So then you also try `yourView.layoutIfNeeded()` as well.
Nope.

What is happening?

You have likely done this:
```
var someView: UIView()

view.addSubview(someView)

// later in some async data call
someView = makeNewView()
someView.setNeedsLayout() // etc.. doesn't work

```

You have already added the view.
So, now you need to do:

```
someView.removeFromSuperView()
someView = makeNewView()
view.addSubview(someView)
```

IMO it's not very nice.
Much better if you can just render elements of the view, instead of completely replacing the view.

But.. sometimes it can't be helped.
