我试图将图像添加到我的UISegmentedControl中,但图像总是自动拉伸以填充整个控件(请参见图片)。我目前通过调用setImage:forSegmentAtIndex:来设置图像。如何设置图像以保持其纵横比?这似乎应该是一件容易的事情,但我一直无法弄清楚。UISegmentedControl中的拉伸图像
回答
当设置你的形象,使用:
UIImage *myNewImage = [myOldImage resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)];
[segment setImage:myNewImage forSegmentAtIndex:i];
哪里top, left, bottom, and right
是你愿意拉伸图像的边缘。如果您不想要任何可拉伸区域,请使用UIEdgeInsetsZero
。
我试过'UIEdgeInsetsZero',现在图像根本不显示。 – shoopdelang
我试过了,它似乎没有区别。 – shoopdelang
非常相似,道尔顿的答案,虽然我建立我在界面生成器视图,因此不得不更换图片,这样的事情:(这是你描述)
self.codesDisplaySegment.contentMode = UIViewContentModeCenter;
for (int ii = 0 ; ii < self.codesDisplaySegment.numberOfSegments ; ++ii)
{
UIImage *img = [self.codesDisplaySegment imageForSegmentAtIndex: ii];
img = [img resizableImageWithCapInsets: UIEdgeInsetsZero];
[self.codesDisplaySegment setImage: img forSegmentAtIndex: ii];
}
这样做可以解决我的问题
这调整了我的图像大小,但然后我的图像变得偏离中心 – Rick
您可以使用下面的代码来设置保证金在你的形象,当你设置图像:
yourSegmentedControl.setImage(yourImage.resizableImage(withCapInsets: .init(top: 0, left: 10, bottom: 0, right: 10), resizingMode: .stretch), forSegmentAt: 0)
你可以改变的“顶”,“左”的价值观, “底部”和“正确”,如你所愿。这对我有用,我希望它会有帮助!
- 1. 拉伸图像
- 2. 拉伸图像
- 3. ResponsiveSlides.js拉伸图像
- 4. 拉伸图像CSS?
- 5. 图像被拉伸
- 6. 图像被拉伸
- 7. 图像拉伸并居中?
- 8. 在Java中拉伸图像
- 9. 在ASP.NET中拉伸图像
- 10. 可拉伸的UIButton图像
- 11. WPF中的图像控件当拉伸设置为无时拉伸图像
- 12. Android中的ViewPager中的图像拉伸
- 13. UIBarButtonItem的设置图像 - 图像拉伸
- 14. 在cell.background视图中拉伸图像
- 15. 在桌面视图中拉伸图像
- 16. Supersized - 如何拉伸图像?
- 17. 拉伸iOS背景图像
- 18. Overwide网页,图像拉伸?
- 19. 图像拉伸在ios
- 20. UINavBar拉伸图像边缘
- 21. 图像不拉伸imageView android
- 22. 按钮图像拉伸
- 23. 拉伸图像高度css
- 24. iPhone:拉伸梯度图像
- 25. 背景图像拉伸
- 26. RibbonControl正在拉伸图像
- 27. abcpdf HTML图像拉伸
- 28. 拉伸图像只有大
- 29. 如何拉伸图像
- 30. 如何拉伸SVG图像?
我有相反的问题。我试图让我的图像拉伸,而现在只是居中 –