Có ai biết cách thêm một gradient vào dưới cùng của một uitableviewcell hoặc uiimageview như hình ảnh được hiển thị bên dưới không?Thêm tô bóng màu vào phần dưới của uitableviewcell/uiimageview
Trả lời
Thêm lớp này vào dự án của bạn (nhanh chóng):
class UIGradientImageView: UIImageView {
let myGradientLayer: CAGradientLayer
override init?(frame: CGRect){
myGradientLayer = CAGradientLayer()
super.init(frame: frame)
self.setup()
addGradientLayer()
}
func addGradientLayer(){
if myGradientLayer.superlayer == nil{
self.layer.addSublayer(myGradientLayer)
}
}
required init(coder aDecoder: NSCoder){
myGradientLayer = CAGradientLayer()
super.init(coder: aDecoder)
self.setup()
addGradientLayer()
}
func getColors() -> [CGColorRef] {
return [UIColor.clearColor().CGColor, UIColor(red: 0, green: 0, blue: 0, alpha: 0.5).CGColor]
}
func getLocations() -> [CGFloat]{
return [0.5, 0.9]
}
func setup() {
myGradientLayer.startPoint = CGPoint(x: 0.5, y: 0)
myGradientLayer.endPoint = CGPoint(x: 0.5, y: 1)
let colors = getColors()
myGradientLayer.colors = colors
myGradientLayer.opaque = false
myGradientLayer.locations = getLocations()
}
override func layoutSubviews() {
super.layoutSubviews()
myGradientLayer.frame = self.layer.bounds
}
}
UPDATE: giải pháp dịch Objective-C. Tín dụng cho @SleepsOnNewspapers.
#import "UIGradientImageView.h"
@interface UIGradientImageView()
@property (nonatomic, strong) CAGradientLayer *myGradientLayer;
@end
@implementation UIGradientImageView
-(instancetype)initWithFrame:(CGRect)frame{
if(self){
self = [super initWithFrame:frame];
self.myGradientLayer = [[CAGradientLayer alloc]init];
[self setup];
[self addGradientLayer];
}
return self;
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
if(self){
self = [super initWithCoder:aDecoder];
self.myGradientLayer = [[CAGradientLayer alloc]init];
[self setup];
[self addGradientLayer];
}
return self;
}
-(void)addGradientLayer{
if (self.myGradientLayer.superlayer == nil) {
[self.layer addSublayer:self.myGradientLayer];
}
}
Make lớp UIImageView
của bạn trên kịch bản của bạn là một trong này thay vì mặc định.
bất kỳ sự khác biệt nào giữa điều này và CGGradientLayer? Cũng là việc thực hiện điều này rất khác nhau trong mục tiêu c? – SleepsOnNewspapers
..nên tương tự. Chỉ cần dịch từ nhanh sang Objective-C, mọi thứ đều có sẵn. –
mã này sẽ không hoạt động. Nó không đưa vào tài khoản rằng uitableviewcells được vẽ lại – SleepsOnNewspapers
- 1. Chú thích với các đường tô màu và tô bóng trong Base R
- 2. Cách tô bóng vùng dưới đường cong trong matplotlib
- 3. Phần che bóng của ô R
- 4. Android: Tô màu một phần của chuỗi bằng TextView.setText()?
- 5. SVG: màu của bóng
- 6. Cách thêm màu nền/tô màu vào một bounding_box trong Prawn
- 7. Thêm Bóng vào NSImageView
- 8. jqPlot: cách tô màu các phần của nền/lưới với nhiều màu khác nhau
- 9. Làm cách nào để đặt màu tô màu cho chỉ mục phần của UITableView?
- 10. Thay đổi màu Tô và Màu của biểu đồ vùng?
- 11. Thêm bóng đổ vào UITableView
- 12. Android - Tô đầy đường dẫn có màu một phần
- 13. Terser Tô màu của Thông điệp LogCat?
- 14. Làm cách nào để thêm bóng vào chế độ xem trang tính dưới cùng?
- 15. Hình dạng tô màu Matlab màu trắng
- 16. Thêm màu vào hình ảnh
- 17. Thanh trạng thái màu tô màu trong ngăn kéo Nav
- 18. Một số ký tự dính vào lời nhắc được tô màu của tôi bằng Python cmd
- 19. Cách tô màu các phần của đường Listbox/ListView trong C# WinForms?
- 20. Độ tin cậy được tô bóng theo độ dốc
- 21. Mô hình phù hợp để tô bóng theo đường ray
- 22. Thêm bóng đổ vào UIWebView và UITextView
- 23. Tắt màu tô sáng của mục menu trong android
- 24. Hoàn thành một phần màu của Zsh
- 25. Swift - Hoạt ảnh tô màu đầy màu sắc
- 26. Cách thêm bóng vào TextView khi chọn/lấy nét
- 27. Điền vào đường dẫn xml vector với bóng màu radial
- 28. Thêm đường viền và bóng tối vào các nút
- 29. Sprite Kit iOS 7 - cách thêm bóng vào SKSpriteNode?
- 30. Cách tô màu nền UIBarButtonItem?
Tạo CAGradientLayer với vùng trong suốt và mờ. Sau đó, thiết lập mặt nạ lớp của contentView thành lớp gradient này. – Sandeep